#include using namespace std; using ll = long long; #define rep(i,m,n) for(int i=m; i> S; vector sq; for(ll i = 1; i*i <= S; i++){ sq.push_back(i*i); } vector ans; while(S > 0LL){ auto itr = upper_bound(sq.begin(), sq.end(), S); itr--; ll A = *itr; ans.push_back(A); S -= A; } sort(ans.begin(), ans.end()); cout << ans.size() << endl; rep(i, 0, int(ans.size())){ cout << ans[i]; cout << (i == int(ans.size())-1 ? '\n' : ' '); } return 0; }