Vanya got n cubes. He decided to build a pyramid from them. Vanya wants to build the pyramid as follows: the top level of the pyramid must consist of 1 cube, the second level must consist of 1 + 2 = 3 cubes, the third level must have 1 + 2 + 3 = 6 cubes, and so on. Thus, the i-th level of the pyramid must have 1 + 2 + ... + (i - 1) + i cubes.

Vanya wants to know what is the maximum height of the pyramid that he can make using the given cubes.

Input

The first line contains integer n (1 ≤ n ≤ 104) — the number of cubes given to Vanya.

Output

Print the maximum possible height of the pyramid in the single line.

Examples

Input

1


Output

1


Input

25


Output

4

Note

Illustration to the second sample: 

<image>
n = int(input())

def getVal(k):
	s1 = k * (k + 1) * (2 * k + 1) / 6
	s2 = k * (k + 1) / 2
	return int((s1 + s2) / 2)

def findVal(start, end):
	if end - start < 2:
		if getVal(end) <= n:
			return(end)
		return(start)

	mid = int((start + end) / 2)
	# print(str(start) + ' ' + str(mid) + ' ' + str(end))
	if getVal(mid) > n:
		return findVal(start, mid - 1)
	else:
		return findVal(mid, end)

print(findVal(1, n))