# include # include # include # include # include # include # include # include # include # include //# include using namespace std; typedef long long ll; typedef long double ld; typedef vector vi; typedef vector> vvi; typedef vector>> vvvi; typedef vector vl; typedef vector> vvl; typedef vector>> vvvl; typedef vector vb; typedef vector> vvb; typedef vector>> vvvb; #define rep(i,n) for(int i=0;i=0;i--) #define repsr(i,m,n) for(int i=n-1;i>=m;i--) #define replr(i,n) for(ll i=n-1;i>=0;i--) #define repslr(i,m,n) for(ll i=n-1;i>=m;i--) #define sksort(x) sort(x.begin(), x.end()) #define sksortr(x) sort(x.rbegin(), x.rend()) #define disp(x) cout << x << endl #define disps(x) cout << x << " " #define dispe cout << endl #define dispv(x) for(ll xqzj=0;xqzj<(ll)x.size();xqzj++){disps(x[xqzj]);}dispe #define dispvv(x) for(ll xqzi=0;xqzi<(ll)x.size();xqzi++){dispv(x[xqzi]);} #define dispvm(x) for(ll xqzj=0;xqzj<(ll)x.size();xqzj++){disps(x[xqzj].val());}dispe #define dispvvm(x) for(ll xqzi=0;xqzi<(ll)x.size();xqzi++){dispvm(x[xqzi]);} #define dispy cout << "Yes" << endl #define dispn cout << "No" << endl #define dispyn(x) if(x)dispy;else dispn #define dispd cout << std::setprecision(20) #define inp(x) int x;cin>>x #define inpl(x) ll x;cin>>x #define inps(x) string x;cin>>x #define allv(x) (x).begin(),(x).end() #define allrv(x) (x).rbegin(),(x).rend() #define imax(x,y) x=max(x,y) #define imin(x,y) x=min(x,y) #define perm(x,y) vi permv(x);rep(permi,x)permv[permi]=permi;do y while(next_permutation(allv(permv))) template using priority_queue_asc = std::priority_queue,std::greater>; using mint = atcoder::modint998244353; //using mint = atcoder::modint1000000007; int main(){ unordered_map mp; mp[0]={}; rep(i,9){ stack sk; for(auto ite=mp.begin();ite!=mp.end();ite++)if((int)(ite->second).size()==i)sk.push(ite->first); while(sk.size()){ if(mp.find(sk.top()+8)==mp.end()){ mp[sk.top()+8]=mp[sk.top()]; mp[sk.top()+8].push_back(8); sksort(mp[sk.top()+8]); } if(mp.find(sk.top()+1)==mp.end()){ mp[sk.top()+1]=mp[sk.top()]; mp[sk.top()+1].push_back(1); sksort(mp[sk.top()+1]); } sk.pop(); } } unordered_map mp2; for(pairp:mp){ for(pairq:mp){ if(mp2.find(p.first*10+q.first)==mp2.end()){ mp2[p.first*10+q.first]={p.second,q.second}; }else if(max(mp2[p.first*10+q.first][0].size(),mp2[p.first*10+q.first][1].size())>max(p.second.size(),q.second.size())){ mp2[p.first*10+q.first]={p.second,q.second}; } } } unordered_map mp4; for(pairp:mp2){ for(pairq:mp2){ if(mp4.find(p.first*100+q.first)==mp4.end()){ mp4[p.first*100+q.first]={p.second[0],p.second[1],q.second[0],q.second[1]}; }else if(max(max(mp4[p.first*100+q.first][0].size(),mp4[p.first*100+q.first][1].size()),max(mp4[p.first*100+q.first][2].size(),mp4[p.first*100+q.first][3].size()))>max(max(p.second[0].size(),p.second[1].size()),max(q.second[0].size(),q.second[1].size()))){ mp4[p.first*100+q.first]={p.second[0],p.second[1],q.second[0],q.second[1]}; } } } inp(t); while(t--){ inp(n); int m=81181819-n; int l=m/10000; int r=m%10000; vvi ans(8); int z=1000000000; rep(i,min(7,l+1)){ if(mp4.find(l-i)!=mp4.end()&&mp4.find(r+i*10000)!=mp4.end()){ int x=0; rep(j,4)imax(x,(int)mp4[l-i][j].size()); rep(j,4)imax(x,(int)mp4[r+i*10000][j].size()); if(x