Given the number *n*, find the smallest positive integer which has exactly *n* divisors. It is guaranteed that for the given *n* the answer will not exceed 10<sup class="upper-index">18</sup>.
The first line of the input contains integer *n* (1 ≤ *n* ≤ 1000).
n = int(input())
p = [0,2,3,5,7,11,13,17,19,23,29]
res = 10**18
def solve(i,cnt,ans):
    global res
    if cnt > n:
        return
    if cnt == n:
        res = min(res,ans)
    j = 1
    while True:
        if ans * p[i] > res:
            break
        ans *= p[i]
        solve(i+1,cnt*(j+1),ans)
        j += 1
solve(1,1,1)
print(res)