#include<algorithm> #include<iostream> #include<string> #include<string.h> #include<array> #include<cmath> #include<iterator> #include<queue> #include<set> #include<map> #include<utility> #include<vector> #include<cfloat> #include<climits> #include<complex> #include<deque> #include<fstream> #include<functional> #include<iomanip> #include<list> #include<memory> #include<stack> #include<random> using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); long long S; cin >> S; vector<long long>ans; while(S) { long long l = 0,r = 1001001001; while(l+1 < r) { long long mid = (l+r)/2; if(mid*mid <= S) { l = mid; } else { r = mid; } } ans.push_back(l*l); S -= l*l; } cout << ans.size() << "\n"; for(int i = 0; i < ans.size(); i++) { cout << ans[i] << ((i+1 == ans.size())?"\n":" "); } }