함수형 프로그래밍을 좋아하는 사람들은 증가와 감소가 쉽다는 이유로 스큐 이진수(skew binary number)를 특히 좋아한다. 이들의 기념 파티에 쓸 현수막과 각종 자료를 준비하기 위해, 십진 정수를 이들이 원하는 스큐 이진수 형식으로 바꾸는 프로그램을 작성하자.
수의 표현은 자릿수의 나열로 이루어진다. 가장 낮은 자리를 랭크(rank) 0, 그다음을 랭크 1, … 이라고 부른다. 예를 들어 십진법에서 자릿수는 0~9이고, 랭크 0의 가중치는 1, 랭크 1의 가중치는 10, 랭크 $i$의 가중치는 $10^i$이다. 이진법에서 자릿수는 0과 1이며, 랭크 $i$의 가중치는 $2^i$이다.
스큐 이진법에서 자릿수는 0, 1, 2이고, 랭크 $i$의 가중치는 $2^{i+1}-1$이다.
| 랭크 | 가중치 |
|---|---|
| 0 | 1 |
| 1 | 3 |
| 2 | 7 |
| 3 | 15 |
| 4 | 31 |
| 5 | 63 |
| 6 | 127 |
| 7 | 255 |
자릿수 2를 허용하면 한 수를 여러 방법으로 표현할 수 있다. 그러나 관례상 자릿수 2는 0이 아닌 자릿수 중 가장 낮은 랭크에서만 나타날 수 있으며, 이 규칙에 따라 표현이 유일해진다.
이 문제에서는 스큐 이진수를 0이 아닌 자릿수들의 랭크 목록으로 나타낸다. 값이 2인 자릿수는 그 랭크를 목록에 두 번 적어 나타낸다. 유일성 규칙 때문에 목록에서 값이 같을 수 있는 것은 가장 작은 두 랭크뿐이다. 랭크는 오름차순으로 나열하고, 각 랭크는 십진 정수이며, 랭크들은 쉼표(,)로 구분하고, 전체 목록은 [로 시작하여 ]로 끝난다. 예를 들어 십진수 5의 스큐 이진 표현은 자릿수 "12"(랭크 1에 1, 랭크 0에 2)이므로 [0,0,1]로 적는다. 십진수 0은 빈 목록 []이다.
주어진 십진수들을 각각 이 스큐 이진 목록 형식으로 변환하라.
첫째 줄에 테스트 케이스의 수 $t$ ($1 \le t \le 10$)가 주어진다. 이어지는 $t$개의 줄에는 각각 하나의 십진수가 앞뒤 공백 없이 주어지며, 그 값은 $0$ 이상 $100663270$ 이하이다.
각 테스트 케이스마다 한 줄에, 입력으로 주어진 십진수(앞쪽 0이나 공백 없이), 공백 한 칸, 그리고 위에서 설명한 목록 형식의 스큐 이진 표현(앞뒤 공백 없이, 목록 안의 각 랭크는 불필요한 앞쪽 0이나 주변 공백 없이)을 출력한다.