from bisect import bisect_right N = int(input()) material = [1] diff = 2 for i in range(10000): sub = material[-1] + diff if sub > 10**7: break material.append(sub) diff += 1 start = bisect_right(material, N) - 1 ans = 1e18 for i in range(start, -1, -1): # 使う硬貨の最大値は material[start] nokori = N cnt = 0 for j in range(i, -1, -1): # 貪欲に使う sho, amari = divmod(nokori, material[j]) cnt += sho nokori = amari if ans > cnt: ans = cnt print(ans)