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).
def prime_factors(n):
    i = 2
    factors = []
    while i * i <= n:
        if n % i:
            i += 1
        else:
            n //= i
            factors.append(i)
    if n > 1:
        factors.append(n)
    return factors
   
p=[2,3,5,7,11,13,17,19] 
n=int(input())
a=prime_factors(n)

ans=1
fans=9999999999999999
for i in reversed(range(len(a))):
    ans=1
    for j in range(i+1):
        ans=ans*(p[j]**(a[len(a)-j-1]-1))
        
    fans=min(fans,ans)  
    a[len(a)-1]=a[len(a)-1]*a[len(a)-i-1]
    
print(fans)