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 int INF = 0x3f3f3f3f;
const int MAXN = 2e5 + 5;
unsigned long long p[16] = {2,  3,  5,  7,  11, 13, 17, 19,
                            23, 29, 31, 37, 41, 43, 47, 53};
unsigned long long minn = 1e18;
int n;
void dfs(int num, unsigned long long tmp, int up, int pp) {
  if (pp == 16) {
    if (num == n && tmp < minn) {
      minn = tmp;
    }
    return;
  }
  unsigned long long s = 1;
  for (int i = 0; i <= up; i++) {
    if (i != 0) s *= p[pp];
    if (tmp * s >= minn || num * (i + 1) > n) break;
    dfs(num * (i + 1), tmp * s, i, pp + 1);
  }
}
int main() {
  cin >> n;
  dfs(1, 1, INF, 0);
  cout << minn << endl;
}
