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;
using pii = pair<int, int>;
const int N = 505;
int n, m, tc = 1, len, q;
const long long inf = 2e18;
int p[] = {0, 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53};
long long dp[1005][13];
long long go(int rem, int idx) {
  if (rem == 1) return 1;
  if (idx > 16) return inf;
  long long &ret = dp[rem][idx];
  if (-1 != ret) return ret;
  long long now = 1;
  ret = inf;
  for (int i = 1; i <= 100; ++i) {
    if (now >= inf / p[idx]) break;
    now = 1ll * now * p[idx];
    if (rem % (i + 1)) continue;
    long long temp = go(rem / (i + 1), idx + 1);
    if (now >= inf / temp) continue;
    ret = min(ret, now * temp);
  }
  return ret;
}
void solve() {
  memset(dp, -1, sizeof dp);
  cin >> n;
  cout << go(n, 1) << '\n';
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(nullptr);
  cout.tie(nullptr);
  while (tc--) {
    solve();
  }
  return 0;
}
