def Bisect_Int(ok,ng,is_ok): while abs(ok-ng)>1: mid=(ok+ng)//2 if is_ok(mid): ok=mid else: ng=mid return ok S=int(input()) A=[] while S: def is_ok(a): return a*a<=S a=Bisect_Int(0,1<<30,is_ok)**2 A.append(a) S-=a print(*A) assert S==0