## https://yukicoder.me/problems/no/2479 import math def sq(S): low = 0 high = 2 * int(math.sqrt(S)) while high - low > 1: mid = (high + low) // 2 if mid ** 2 <= S: low = mid else: high = mid if high ** 2 <= S: return high else: return low def main(): S = int(input()) array = [] s = S while s > 0: s_ = sq(s) array.append(s_ ** 2) s -= s_ ** 2 print(len(array)) print(" ".join(map(str, array))) if __name__ == '__main__': main()