S = int(input()) # k 乗根 def sqrt(n: int, k = 2): l = k - 1 if not n: return 0 y = 1 << (n.bit_length() + l) // k x = y + 1 while y < x: x = y y = (l * x + n // (x ** l)) // k return x def f(n: int): if n == 0: return [] x = sqrt(n) return [x*x] + f(n - x*x) ans = f(S) print(len(ans)) print(*ans)