#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define endl '\n'
#define fi first
#define se second
const int N = 1e3 + 5;
ll a, b, c;
string n;
int dp[20][30][1005][2][2][2];
struct Trace {
int a = 0, b = 0, c = 0, carry = 0, s = 0, ok = 0, okb = 0, okc = 0;
} trace[20][30][1005][2][2][2], check;
int Try(int i, int carry, int ok, int okb, int okc, int S) {
//cout << i << ' ' << carry << ' ' << S << ' ' << ok<< endl;
if(dp[i][carry][S][ok][okb][okc] != -1) return dp[i][carry][S][ok][okb][okc];
if(i == 0) return dp[i][carry][S][ok][okb][okc] = (!carry && ok && okb && okc);
int &res = dp[i][carry][S][ok][okb][okc];
res = 0;
int digit = n[i] - '0';
for(int c = 9; c >= 0; c--)
for(int b = c; b >= 0; b--)
for(int a = b; a >= 0; a--) {
int s = a + b + c + carry;
if(s % 10 == digit) {
int noka = (ok | (a != 0));
int nokb = (okb | (b > a));
int nokc = (okc | (c > b));
res |= Try(i - 1, s / 10, noka, nokb, nokc, S + a + b + c);
if(dp[i - 1][s / 10][S + a + b + c][noka][nokb][nokc] == 1) {
//cout << 1 << endl;
Trace &next = trace[i - 1][s / 10][S + a + b + c][noka][nokb][nokc];
next.a = a;
next.b = b;
next.c = c;
next.carry = carry;
next.s = S;
next.ok = ok;
next.okb = okb;
next.okc = okc;
//return res;
//cout << i - 1 << ' ' << s / 10 << ' ' << S + s << ' ' << noka << endl;
}
}
}
return res;
}
ll logg3(ll x) {
ll ans = 1;
for (ans = 1; ans * 3 <= x; ans *= 3){};
return ans;
}
vector<ll> tach(ll x) {
vector<ll> ans;
ll add = 1;
while(x > 0) {
if(x & 1) {
ll lg = logg3(x);
ans.push_back(lg * add);
x -= lg;
} else {
x /= 2;
add *= 2;
}
}
return ans;
}
void reset() {
memset(dp, -1, sizeof dp);
}
signed main() {
if (fopen("vd.inp", "r")) {
freopen("vd.inp", "r", stdin);
freopen("vd.out", "w", stdout);
}
ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
int ntest; cin >> ntest;
//cout << d[0][0] << ' ';
while(ntest--) {
cin >> n;
n = ' ' + n;
reset();
if(!Try(n.size() - 1, 0, 0, 0, 0, 0)) {
cout << -1 << endl;
continue;
}
ll a = 0, b = 0, c = 0;
for(int i = n.size() * 30; i >= 6; i--)
if(dp[0][0][i][1][1][1] == 1) {
//cout << i << ' ' << trace[0][0][i][1][1][1].a << endl;
int ii = 0, carry = 0, S = i, ok = 1, okb = 1, okc = 1;
while(ii < n.size() - 1) {
//cout << 1 << ' ';
//cout << trace[ii][carry][S][ok][okb][okc].a << endl;
Trace &cur = trace[ii][carry][S][ok][okb][okc];
a = a * 10 + 1ll * cur.a;
b = b * 10 + 1ll * cur.b;
c = c * 10 + 1ll * cur.c;
int nS = cur.s;
int nok = cur.ok;
int nokb = cur.okb;
int nokc = cur.okc;
int ncarry = cur.carry;
ii++;
S = nS; ok = nok; okb = nokb; okc = nokc, carry = ncarry;
}
break;
}
if(a * b * c == 0 || a >= b || a >= c || b >= c) {
cout << -1 << endl;
continue;
}
vector<ll> va = tach(a), vb = tach(b), vc = tach(c);
cout << va.size() << ' ' << vb.size() << ' ' << vc.size() << ' ';
for(auto x : va) cout << x << ' ';
for(auto x : vb) cout << x << ' ';
for(auto x : vc) cout << x << ' ';
cout << endl;
//cout << a << ' ' << b << ' ' << c << endl;
}
//cout << logg3(9);
//cout << (1 > 2 || 2 < 2);
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgZW5kbCAnXG4nCiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBzZSBzZWNvbmQKY29uc3QgaW50IE4gPSAxZTMgKyA1OwpsbCBhLCBiLCBjOwpzdHJpbmcgbjsKaW50IGRwWzIwXVszMF1bMTAwNV1bMl1bMl1bMl07CnN0cnVjdCBUcmFjZSB7CiAgICBpbnQgYSA9IDAsIGIgPSAwLCBjID0gMCwgY2FycnkgPSAwLCBzID0gMCwgb2sgPSAwLCBva2IgPSAwLCBva2MgPSAwOwp9IHRyYWNlWzIwXVszMF1bMTAwNV1bMl1bMl1bMl0sIGNoZWNrOwppbnQgVHJ5KGludCBpLCBpbnQgY2FycnksIGludCBvaywgaW50IG9rYiwgaW50IG9rYywgaW50IFMpIHsKICAgIC8vY291dCA8PCBpIDw8ICcgJyA8PCBjYXJyeSA8PCAnICcgPDwgUyA8PCAnICcgPDwgb2s8PCBlbmRsOwogICAgaWYoZHBbaV1bY2FycnldW1NdW29rXVtva2JdW29rY10gIT0gLTEpIHJldHVybiBkcFtpXVtjYXJyeV1bU11bb2tdW29rYl1bb2tjXTsKICAgIGlmKGkgPT0gMCkgcmV0dXJuIGRwW2ldW2NhcnJ5XVtTXVtva11bb2tiXVtva2NdID0gKCFjYXJyeSAmJiBvayAmJiBva2IgJiYgb2tjKTsKCiAgICBpbnQgJnJlcyA9IGRwW2ldW2NhcnJ5XVtTXVtva11bb2tiXVtva2NdOwogICAgcmVzID0gMDsKICAgIGludCBkaWdpdCA9IG5baV0gLSAnMCc7CiAgICBmb3IoaW50IGMgPSA5OyBjID49IDA7IGMtLSkKICAgICAgICBmb3IoaW50IGIgPSBjOyBiID49IDA7IGItLSkKICAgICAgICAgICAgZm9yKGludCBhID0gYjsgYSA+PSAwOyBhLS0pIHsKICAgICAgICAgICAgICAgIGludCBzID0gYSArIGIgKyBjICsgY2Fycnk7CiAgICAgICAgICAgICAgICBpZihzICUgMTAgPT0gZGlnaXQpIHsKICAgICAgICAgICAgICAgICAgICBpbnQgbm9rYSA9IChvayB8IChhICE9IDApKTsKICAgICAgICAgICAgICAgICAgICBpbnQgbm9rYiA9IChva2IgfCAoYiA+IGEpKTsKICAgICAgICAgICAgICAgICAgICBpbnQgbm9rYyA9IChva2MgfCAoYyA+IGIpKTsKICAgICAgICAgICAgICAgICAgICByZXMgfD0gVHJ5KGkgLSAxLCBzIC8gMTAsIG5va2EsIG5va2IsIG5va2MsIFMgKyBhICsgYiArIGMpOwogICAgICAgICAgICAgICAgICAgIGlmKGRwW2kgLSAxXVtzIC8gMTBdW1MgKyBhICsgYiArIGNdW25va2FdW25va2JdW25va2NdID09IDEpIHsKICAgICAgICAgICAgICAgICAgICAgICAgLy9jb3V0IDw8IDEgPDwgZW5kbDsKICAgICAgICAgICAgICAgICAgICAgICAgVHJhY2UgJm5leHQgPSB0cmFjZVtpIC0gMV1bcyAvIDEwXVtTICsgYSArIGIgKyBjXVtub2thXVtub2tiXVtub2tjXTsKICAgICAgICAgICAgICAgICAgICAgICAgbmV4dC5hID0gYTsKICAgICAgICAgICAgICAgICAgICAgICAgbmV4dC5iID0gYjsKICAgICAgICAgICAgICAgICAgICAgICAgbmV4dC5jID0gYzsKICAgICAgICAgICAgICAgICAgICAgICAgbmV4dC5jYXJyeSA9IGNhcnJ5OwogICAgICAgICAgICAgICAgICAgICAgICBuZXh0LnMgPSBTOwogICAgICAgICAgICAgICAgICAgICAgICBuZXh0Lm9rID0gb2s7CiAgICAgICAgICAgICAgICAgICAgICAgIG5leHQub2tiID0gb2tiOwogICAgICAgICAgICAgICAgICAgICAgICBuZXh0Lm9rYyA9IG9rYzsKICAgICAgICAgICAgICAgICAgICAgICAgLy9yZXR1cm4gcmVzOwogICAgICAgICAgICAgICAgICAgICAgICAvL2NvdXQgPDwgaSAtIDEgPDwgJyAnIDw8IHMgLyAxMCA8PCAnICcgPDwgUyArIHMgPDwgJyAnICA8PCBub2thIDw8IGVuZGw7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICByZXR1cm4gcmVzOwp9CmxsIGxvZ2czKGxsIHgpIHsKICAgIGxsIGFucyA9IDE7CiAgICBmb3IgKGFucyA9IDE7IGFucyAqIDMgPD0geDsgYW5zICo9IDMpe307CiAgICByZXR1cm4gYW5zOwp9CnZlY3RvcjxsbD4gdGFjaChsbCB4KSB7CiAgICB2ZWN0b3I8bGw+IGFuczsKICAgIGxsIGFkZCA9IDE7CiAgICB3aGlsZSh4ID4gMCkgewogICAgICAgIGlmKHggJiAxKSB7CiAgICAgICAgICAgIGxsIGxnID0gbG9nZzMoeCk7CiAgICAgICAgICAgIGFucy5wdXNoX2JhY2sobGcgKiBhZGQpOwogICAgICAgICAgICB4IC09IGxnOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHggLz0gMjsKICAgICAgICAgICAgYWRkICo9IDI7CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIGFuczsKfQp2b2lkIHJlc2V0KCkgewogICAgbWVtc2V0KGRwLCAtMSwgc2l6ZW9mIGRwKTsKfQpzaWduZWQgbWFpbigpIHsKICAgIGlmIChmb3BlbigidmQuaW5wIiwgInIiKSkgewogICAgICAgIGZyZW9wZW4oInZkLmlucCIsICJyIiwgc3RkaW4pOwogICAgICAgIGZyZW9wZW4oInZkLm91dCIsICJ3Iiwgc3Rkb3V0KTsKICAgIH0KICAgIGlvczo6c3luY193aXRoX3N0ZGlvKDApOyBjaW4udGllKDApOyBjb3V0LnRpZSgwKTsKICAgIGludCBudGVzdDsgY2luID4+IG50ZXN0OwogICAgLy9jb3V0IDw8IGRbMF1bMF0gPDwgJyAnOwogICAgd2hpbGUobnRlc3QtLSkgewogICAgICAgIGNpbiA+PiBuOwogICAgICAgIG4gPSAnICcgKyBuOwogICAgICAgIHJlc2V0KCk7CiAgICAgICAgaWYoIVRyeShuLnNpemUoKSAtIDEsIDAsIDAsIDAsIDAsIDApKSB7CiAgICAgICAgICAgIGNvdXQgPDwgLTEgPDwgZW5kbDsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgfQogICAgICAgIGxsIGEgPSAwLCBiID0gMCwgYyA9IDA7CiAgICAgICAgZm9yKGludCBpID0gbi5zaXplKCkgKiAzMDsgaSA+PSA2OyBpLS0pCiAgICAgICAgICAgIGlmKGRwWzBdWzBdW2ldWzFdWzFdWzFdID09IDEpIHsKICAgICAgICAgICAgICAgIC8vY291dCA8PCBpIDw8ICcgJyA8PCB0cmFjZVswXVswXVtpXVsxXVsxXVsxXS5hIDw8IGVuZGw7CiAgICAgICAgICAgICAgICBpbnQgaWkgPSAwLCBjYXJyeSA9IDAsIFMgPSBpLCBvayA9IDEsIG9rYiA9IDEsIG9rYyA9IDE7CiAgICAgICAgICAgICAgICB3aGlsZShpaSA8IG4uc2l6ZSgpIC0gMSkgewogICAgICAgICAgICAgICAgICAgIC8vY291dCA8PCAxIDw8ICcgJzsKICAgICAgICAgICAgICAgICAgICAvL2NvdXQgPDwgdHJhY2VbaWldW2NhcnJ5XVtTXVtva11bb2tiXVtva2NdLmEgPDwgZW5kbDsKICAgICAgICAgICAgICAgICAgICBUcmFjZSAmY3VyID0gdHJhY2VbaWldW2NhcnJ5XVtTXVtva11bb2tiXVtva2NdOwogICAgICAgICAgICAgICAgICAgIGEgPSBhICogMTAgKyAxbGwgKiBjdXIuYTsKICAgICAgICAgICAgICAgICAgICBiID0gYiAqIDEwICsgMWxsICogY3VyLmI7CiAgICAgICAgICAgICAgICAgICAgYyA9IGMgKiAxMCArIDFsbCAqIGN1ci5jOwogICAgICAgICAgICAgICAgICAgIGludCBuUyA9IGN1ci5zOwogICAgICAgICAgICAgICAgICAgIGludCBub2sgPSBjdXIub2s7CiAgICAgICAgICAgICAgICAgICAgaW50IG5va2IgPSBjdXIub2tiOwogICAgICAgICAgICAgICAgICAgIGludCBub2tjID0gY3VyLm9rYzsKICAgICAgICAgICAgICAgICAgICBpbnQgbmNhcnJ5ID0gY3VyLmNhcnJ5OwogICAgICAgICAgICAgICAgICAgIGlpKys7CiAgICAgICAgICAgICAgICAgICAgUyA9IG5TOyBvayA9IG5vazsgb2tiID0gbm9rYjsgb2tjID0gbm9rYywgY2FycnkgPSBuY2Fycnk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgIGlmKGEgKiBiICogYyA9PSAwIHx8IGEgPj0gYiB8fCBhID49IGMgfHwgYiA+PSBjKSB7CiAgICAgICAgICAgIGNvdXQgPDwgLTEgPDwgZW5kbDsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgfQogICAgICAgIHZlY3RvcjxsbD4gdmEgPSB0YWNoKGEpLCB2YiA9IHRhY2goYiksIHZjID0gdGFjaChjKTsKICAgICAgICBjb3V0IDw8IHZhLnNpemUoKSA8PCAnICcgPDwgdmIuc2l6ZSgpIDw8ICcgJyA8PCB2Yy5zaXplKCkgPDwgJyAnOwogICAgICAgIGZvcihhdXRvIHggOiB2YSkgY291dCA8PCB4IDw8ICcgJzsKICAgICAgICBmb3IoYXV0byB4IDogdmIpIGNvdXQgPDwgeCA8PCAnICc7CiAgICAgICAgZm9yKGF1dG8geCA6IHZjKSBjb3V0IDw8IHggPDwgJyAnOwogICAgICAgIGNvdXQgPDwgZW5kbDsKICAgICAgICAvL2NvdXQgPDwgYSA8PCAnICcgPDwgYiA8PCAnICcgPDwgYyA8PCBlbmRsOwogICAgfQogICAgLy9jb3V0IDw8IGxvZ2czKDkpOwogICAgLy9jb3V0IDw8ICgxID4gMiB8fCAyIDwgMik7CiAgICByZXR1cm4gMDsKfQo=