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 1018.

Input

The first line of the input contains integer n (1 ≤ n ≤ 1000).

Output

Output the smallest positive integer with exactly n divisors.

Examples

Input

4


Output

6


Input

6


Output

12
#include <bits/stdc++.h>
using namespace std;
vector<long long> v1 = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47};
vector<long long> v2 = {59, 38, 26, 22, 18, 17, 15, 15,
                        15, 15, 15, 15, 15, 15, 15};
long long maxi = 1e18;
long long n;
long long mn = LONG_LONG_MAX;
map<pair<long long, long long>, long long> mp;
void solv(long long cnt, long long ans, long long divisors) {
  if (ans > maxi) return;
  if (divisors > n) return;
  if (divisors == n) mn = min(mn, ans);
  if (cnt == v1.size()) return;
  for (long long i = 1; i <= v2[cnt]; i++) {
    if (ans <= maxi) {
      long long d = min((double)maxi + 1, pow(v1[cnt], i));
      if (d <= maxi / ans && n % divisors == 0)
        solv(cnt + 1, ans * d, divisors * (i + 1));
    }
  }
}
int main() {
  ios_base::sync_with_stdio(false), cin.tie(NULL);
  cin >> n;
  solv(0, 1, 1);
  cout << mn;
}
