from heapq import heappush, heappop, heapify import sys from collections import defaultdict, deque from math import ceil, floor, sqrt, factorial, gcd from itertools import permutations, combinations from bisect import bisect_left, bisect_right sys.setrecursionlimit(10**6) # input = sys.stdin.readline s = int(input()) ans = [] while s > 0: x = s**0.5 if floor(x)**2 > s: x = floor(x)-1 else: x = floor(x) s -= x**2 ans.append(x**2) print(len(ans)) print(*ans)