증가하는 부분 수열의 개수 814K

아직 제출이 없습니다시간 제한2초메모리 제한1024 MB

문제

자연수 KK가 주어진다. 길이가 34 이하이면서 증가하는 부분 수열의 개수가 정확히 KK개인 수열을 만드는 프로그램을 작성하자.

증가하는 부분 수열이 무엇인지 잘 모르는 친구들은 친절한 동원이가 준비한 아래 정의를 읽어보도록 하자.

  • 부분 수열이란 주어진 수열에서 1개 이상의 원소를 골라 원래 순서대로 나열하여 얻은 수열을 말한다.
  • 증가하는 부분 수열이란 맨 처음 원소를 제외한 모든 원소가 바로 전 원소보다 큰 수열을 말한다. 다시 말해 길이가 NN인 부분 수열 AA가 있을 때, A_i1< A_iA\_{i-1} < A\_i (2iN2 \le i \le N) 를 만족하면 AA는 증가하는 부분 수열이다.

동원이는 위 정의에 따라 길이가 11인 부분 수열은 항상 증가하는 부분 수열임에 주의하면 좋겠다는 메모를 추신으로 남겼다.

입력

첫째 줄에 테스트 케이스의 개수 TT가 주어진다.

각 테스트 케이스마다, 만들어야 하는 수열의 증가하는 부분 수열의 개수를 나타내는 KK가 주어진다.

출력

각 테스트 케이스에 대해 아래와 같이 두 줄로 구성된 답안을 출력한다.

첫째 줄에는 만든 수열의 길이 NN을 출력한다. NN3434 이하의 양의 정수여야 한다.

둘째 줄에는 만든 수열의 각 원소를 차례대로 공백으로 구분하여 출력한다. 수열의 각 원소는 10910^9 이하의 양의 정수여야 한다.

가능한 답안이 여러 가지 있으면 아무거나 출력해도 된다.

제한

  • 1T10,0001 \leq T \leq 10\\,000
  • 1K<262,144=2181 \leq K < 262\\,144 = 2^{18}