import sys

input = sys.stdin.readline



n = int(eval(input()))

cnt = 0

ans = []

for i in range(1, n + 1):

    cnt += i

    ans.append(i)

    if cnt >= n:

        if cnt > n:

            ans.remove(cnt - n)

        for j in range(len(ans)):

            print((ans[j]))

        exit()

import sys

read = sys.stdin.buffer.read

readline = sys.stdin.buffer.readline

readlines = sys.stdin.buffer.readlines

sys.setrecursionlimit(10 ** 7)



n = int(readline())

ans = []

cnt = 0

for i in range(1, n + 2):

    cnt += i

    ans.append(i)

    if cnt > n:

        ans.remove(cnt - n)

        break

print(('\n'.join(map(str, ans))))

import sys

input = sys.stdin.readline
n = int(eval(input()))
cnt = 0
ans = []
for i in range(1, n + 1):
    cnt += i
    ans.append(i)
    if cnt >= n:
        if cnt > n:
            ans.remove(cnt - n)
        for j in range(len(ans)):
            print((ans[j]))
        exit()

import sys

read = sys.stdin.buffer.read
readline = sys.stdin.buffer.readline
readlines = sys.stdin.buffer.readlines
sys.setrecursionlimit(10**7)
n = int(readline())
ans = []
cnt = 0
for i in range(1, n + 2):
    cnt += i
    ans.append(i)
    if cnt > n:
        ans.remove(cnt - n)
        break
print(("\n".join(map(str, ans))))

-input = sys.stdin.readline -n = int(eval(input())) +read = sys.stdin.buffer.read +readline = sys.stdin.buffer.readline +readlines = sys.stdin.buffer.readlines +sys.setrecursionlimit(10**7) +n = int(readline()) +ans = [] -ans = [] -for i in range(1, n + 1): +for i in range(1, n + 2): -    if cnt >= n: -        if cnt > n: -            ans.remove(cnt - n) -        for j in range(len(ans)): -            print((ans[j])) -        exit() +    if cnt > n: +        ans.remove(cnt - n) +        break +print(("\n".join(map(str, ans))))