# 大きすぎる平方数でない方がいいのか? S = int(input()) from math import ceil def nearest_square_num(N): upper = ceil(N**0.5) for i in range(upper, upper-5, -1): if i*i <= N: return i S_remainder = S ans_list = [] while S_remainder > 0: calc = nearest_square_num(S_remainder) ans_list.append(calc*calc) S_remainder -= calc*calc print(len(ans_list)) print(*ans_list)