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;
const long long maxx = 1e18 + 9;
const long long p[] = {2,  3,  5,  7,  11, 13, 17, 19,
                       23, 29, 31, 37, 41, 43, 47, 53};
const long long INF = 0x3f3f3f3f;
long long res, maxnum;
long long t, n;
void dfs(long long now, long long num, long long x, long long n) {
  if (num > n) return;
  if (num == n && res > now) {
    res = now;
    return;
  }
  for (int i = 1; i <= 64; i++) {
    if (now * p[x] > res)
      break;
    else {
      dfs(now *= p[x], num * (i + 1), x + 1, n);
    }
  }
}
int main() {
  cin >> n;
  res = INF * INF;
  maxnum = 0;
  dfs(1, 1, 0, n);
  cout << res << endl;
  return 0;
}
