def maxsq(n): high = n+1 low = 0 while high-low>1: mid = (high+low)//2 if mid*mid>n: high = mid else: low = mid return low S = int(input()) A = [] x = S while True: n = maxsq(x) A.append(n*n) x -= n*n if x==0:break print(len(A)) print(*A)