#include #include int pole[] = { 1, 3, 9, 27, 81, 243, 729, 2187, 6561, 19683, 59049, 177147, 531441, 1594323, 4782969 }; int pole2[] = { 1, 5, 21, 81, 297, 1053, 3645, 12393, 41553, 137781, 452709, 1476225, 4782969 }; int main(){ /* int j; int n = 1; int m = 1; for(j = 1; j < 1000; j++){ printf("%d\n", m); n = 3*n+2*m; m = 3*m; if(m > 10000000) break; } */ int a; scanf("%d", &a); int m; int i; for(i = 0; i < a; i++) { scanf("%d", &m); int pole3[15] = {0}; int n = 14; while(m > 0) { if(pole[n] <= m) { m -= pole[n]; pole3[n]++; } else { n--; } } int j; int k = 0; for(j = 14; j > 0; j--) { if(pole3[j] > 0) { k = 1; } if(k == 1) { printf("%d ", pole3[j]); } } printf("%d\n", pole3[0]); } return 0; }