#include #define MAX 40 int pole[MAX]; int rec( int cap ) { if( cap <= 0 ) return 1; int i, mul = 1; for( i = 1; ; i++ ) { if( mul*3 > cap ) break; mul *= 3; } rec( cap - mul ); //printf("%d %d\n", mul,i); pole[i-1]++; return 1; } int main() { int N,Ni; scanf("%d", &N);// test cases for( Ni = 0; Ni < N; Ni++ ) { for(int i = 0; i < 10; i++ ) pole[i] = 0; int cap; //capacity scanf("%d", &cap); rec(cap); char flag = 0; for(int i = MAX-1; i >= 0; i-- ) { if( flag == 0 && pole[i] != 0 ) flag = 1; if(flag) { printf("%d", pole[i]); if(i>0) printf(" "); } } printf("\n"); } return 0; }