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).
INF = 29 ** 10
primes = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29]

n = int(input())
dp = [[INF for _ in range(10)] for __ in range(n + 1)]
for i in range(10):
    dp[1][i] = 1
for i in range(2, n + 1):
    dp[i][0] = dp[i - 1][0] * primes[0]

for i in range(1, 10):
    for j in range(2, n + 1):
        power = 1
        for k in range(0, j):
            if j % (k + 1) == 0:
                dp[j][i] = min(dp[j][i], dp[j // (k + 1)][i - 1] * power)
            power *= primes[i]

print(dp[n][9])
