#include #include #include using namespace std; using namespace atcoder; using ll = long long; //#define endl "\n"; ll Q, ans[7], anssize; void dfs(int rest, int pos, int num, int kakeru){ if(pos == 8){ if(rest == 0) anssize = num; return; } for(int i = 0; i <= num; i++){ for(int j = 0; j <= num - i; j++){ if((i + 8 * j) <= rest && (i + 8 * j) % 10 == rest % 10){ dfs((rest - i - 8 * j) / 10, pos + 1, num, kakeru * 10); if(anssize == num){ int idx = 0; for(int k = 0; k < i; k++) ans[idx + k] += kakeru; idx += i; for(int k = 0; k < j; k++) ans[idx + k] += kakeru * 8; return; } } } } } int main(){ cin >> Q; for(int q = 1; q <= Q; q++){ ll N; cin >> N; int tar = 81181819 - N; for(int i = 0; i < 7; i++) ans[i] = 0; anssize = 8; for(int i = 1; i <= 7; i++){ dfs(tar, 0, i, 1); if(anssize < 8) break; } cout << anssize << endl; for(int i = 0; i < anssize; i++) cout << ans[i] << endl; } return 0; }