#include using namespace std; typedef long long int ll; typedef unsigned long long ull; typedef long double ld; int dx[8] = { 1, 0, -1, 0, 1, 1, -1, -1 }, dy[8] = { 0, 1, 0, -1, 1, -1, 1, -1 }; const long long mod = 998244353; const ll inf = 1LL << 60; const int INF = 5e8; ull isqrt(ull N) { ll sqrtN = sqrt(N) - 1; while (sqrtN + 1 <= N / (sqrtN + 1)) sqrtN++; return sqrtN; } int main() { ll s; cin >> s; ll S = s; int cnt = 0; while (s) { ll n = isqrt(s); s -= n * n; cnt++; } cout << cnt << endl; while (S) { ll n = isqrt(S); S -= n * n; cout << n * n << endl; } }