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).
import sys
input=sys.stdin.readline
n=int(input())
y=[2,3,5,7,11,13,17,23,29,31]
def dfs(n,pos):
    v=[1,10**18][n>1]
    for i in range(2,n+1):
        if n%i==0:
            v=min(v,y[pos]**(i-1)*dfs(n//i,pos+1))
    return v
print(dfs(n,0))