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;
int n;
long long ans;
int p[] = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29};
int use[100];
void dfs(int id, int res, long long now) {
  if (id == 10) return;
  if (now > ans) return;
  if (res > n) return;
  if (res == n) {
    ans = min(ans, now);
    return;
  }
  dfs(id + 1, res, now);
  long long ret = 1;
  for (int i = 1; i <= 60; i++) {
    if (ans / now / p[id] < ret) break;
    ret *= p[id];
    dfs(id + 1, res * (i + 1), now * ret);
  }
}
int main() {
  while (~scanf("%d", &n)) {
    memset(use, 0, sizeof(use));
    ans = 1e18;
    dfs(0, 1, 1);
    cout << ans << endl;
  }
  return 0;
}
