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)