import sys from itertools import takewhile, count sys.setrecursionlimit(10**7) n = int(input()) koukas = [ k * (k + 1) // 2 for k in takewhile(lambda k: k * (k + 1) // 2 <= n, count(1)) ] def can(m, n): if m == 0 or n == 0: return m == n for kouka in koukas: if kouka > n: break if can(m - 1, n - kouka): return True return False for m in count(1): if can(m, n): print(m) exit()