#include "bits/stdc++.h" using namespace std; void __print(int x) {cout << x;} void __print(long x) {cout << x;} void __print(long long x) {cout << x;} void __print(unsigned x) {cout << x;} void __print(unsigned long x) {cout << x;} void __print(unsigned long long x) {cout << x;} void __print(float x) {cout << x;} void __print(double x) {cout << x;} void __print(long double x) {cout << x;} void __print(char x) {cout << '\'' << x << '\'';} void __print(const char *x) {cout << '\"' << x << '\"';} void __print(const string &x) {cout << '\"' << x << '\"';} void __print(bool x) {cout << (x ? "true" : "false");} template void __print(const pair &x) {cout << '{'; __print(x.first); cout << ','; __print(x.second); cout << '}';} template void __print(const T &x) {int f = 0; cout << '{'; for (auto &i: x) cout << (f++ ? "," : ""), __print(i); cout << "}";} void _print() {cout << "]\n";} template void _print(T t, V... v) {__print(t); if (sizeof...(v)) cout << ", "; _print(v...);} #ifndef ONLINE_JUDGE #define debug(x...) cout << "[" << #x << "] = ["; _print(x) #else #define debug(x...) #endif int main() { ios_base:: sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); long long S; cin >> S; vector A; while (S > 0) { long long low = 0, high = 1000000001; while (high - low > 1) { long long mid = (low + high) >> 1; if (mid * mid <= S) { low = mid; } else { high = mid; } } A.push_back(low * low); S -= low * low; } int N = A.size(); cout << N << endl; for (long long w : A) { cout << w << " "; } cout << "\n"; }