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())
def factor(bc):
    fs = []; f = 2
    while f * f <= bc:
        if bc % f == 0:
            fs.append(f)
            bc //= f
        else:
            f += 1
    fs.append(bc)
    return fs
fs = factor(n)
# this will use at most 10 primes
primes = [2,3,5,7,11,13,17,19,23,29,31,37,41]
s = 1
for i in range(len(fs)):
    s *= primes[len(fs) - 1 - i] ** (fs[i] - 1)
print(s)