#include #include #include #include using namespace std; vector d; int makeDigit(const string& n) { d.clear(); int sum = 0; for(int i = 0; i < (int)n.size(); ++i) { d.push_back(n[i] - '0'); sum += d.back(); } return sum; } vector marge(int pat) { vector v; int k = 0; pat |= (1 << (d.size()-1)); for(int i = 0; i < (int)d.size(); ++i) { k = k * 10 + d[i]; if(pat & (1 << i)) { v.push_back(k); k = 0; } } return v; } int sum(const vector& v) { int s = 0; for(int i = 0; i < (int)v.size(); ++i) s += v[i]; return s; } int main() { string n; int t; while(cin >> t >> n && (t || n != "0")) { int nn = atoi(n.c_str()); if(nn == t) { cout << n << " " << n << endl; continue; } if(makeDigit(n) > t) { cout << "error" << endl; continue; } int all = 1 << (d.size() - 1); int ans = 0; int ans_p; int dup = 0; for(int i = 0; i < all; ++i) { int s = sum(marge(i)); if(s <= t) { if(s > ans) { ans = s; ans_p = i; dup = 0; } else if(s == ans) dup++; } } if(dup) cout << "rejected" << endl; else { cout << ans; vector v = marge(ans_p); for(int i = 0; i < (int)v.size(); ++i) cout << " " << v[i]; cout << endl; } } }