def f(N): if N == 0: return [] ok, ng = 0, 10 ** 9 + 1 while ng - ok > 1: md = (ng + ok) // 2 if md ** 2 <= N: ok = md else: ng = md ans = [ok ** 2] + f(N - ok ** 2) return ans ans = f(int(input())) print(len(ans)) print(*ans)