n = int(input())
def Gauss(n):
return(n*(3*n+1)//2)
def busquedabinaria(n):
if n < 2: return ""
if n == 2:
print(1)
return ""
return busquedabi(n,0,n)
def busquedabi(n,ini,fin):
m =((ini+fin)//2)
if Gauss(m) == n:
print(m)
return ""
if Gauss(m) > n: return busquedabi(n,ini,m)
if Gauss(m) < n and Gauss(m+1) > n:
print(m, end = " ")
return busquedabinaria(n-Gauss(m))
else:
return busquedabi(n,m,fin)
print(busquedabinaria(n))
biA9IGludChpbnB1dCgpKQpkZWYgR2F1c3Mobik6CglyZXR1cm4obiooMypuKzEpLy8yKQpkZWYgYnVzcXVlZGFiaW5hcmlhKG4pOiAKCWlmIG4gPCAyOiByZXR1cm4gIiIKCWlmIG4gPT0gMjogCgkJcHJpbnQoMSkKCQlyZXR1cm4gIiIKCXJldHVybiBidXNxdWVkYWJpKG4sMCxuKQpkZWYgYnVzcXVlZGFiaShuLGluaSxmaW4pOiAKCW0gPSgoaW5pK2ZpbikvLzIpCglpZiBHYXVzcyhtKSA9PSBuOgoJCXByaW50KG0pIAoJCXJldHVybiAiIgoJaWYgR2F1c3MobSkgPiAgbjogcmV0dXJuIGJ1c3F1ZWRhYmkobixpbmksbSkKCWlmIEdhdXNzKG0pIDwgbiBhbmQgR2F1c3MobSsxKSA+IG46CgkJcHJpbnQobSwgZW5kID0gIiAiKSAKCQlyZXR1cm4gYnVzcXVlZGFiaW5hcmlhKG4tR2F1c3MobSkpCgoJZWxzZToKCQlyZXR1cm4gYnVzcXVlZGFiaShuLG0sZmluKQpwcmludChidXNxdWVkYWJpbmFyaWEobikp