def merge(a, b):
res = []
i = 0
j = 0
while i < len(a) and j < len(b):
if a[i] < b[j]:
res.append(a[i])
i += 1
elif a[i] > b[j]:
res.append(b[j])
j += 1
elif a[i] == b[j]:
res.append(b[j])
j += 1
i += 1
res.extend(a[i:])
res.extend(b[j:])
return res
def msort(a):
if len(a) <= 1:
return a
k = len(a) // 2
return merge(msort(a[:k]), msort(a[k:]))
x = int(input())
a1 = [i ** 2 for i in range(1, 3 * x)]
b1 = [i ** 3 for i in range(1, 3 * x)]
arr = a1 + b1
arr = msort(arr)
print(arr[x - 1])