S=int(input()) A=[] while S!=0: left,right=1,10**9+1 while right-left>1: mid=(right+left)//2 if mid*mid<=S: left=mid else: right=mid S-=left*left A.append(left*left) print(len(A)) print(*A)