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, prime[] = {0, 2, 3, 5, 7, 11, 13, 17, 19, 23, 29};
long double f[1111][22], st;
int main() {
  scanf("%d", &n);
  if (n == 1) {
    puts("1");
    return 0;
  }
  long double ans = LONG_LONG_MAX;
  for (int i = 0; i < n; i++)
    for (int j = 0; j < 11; j++) f[i][j] = LONG_LONG_MAX;
  f[1][0] = 1;
  for (int j = 1; j < 11; j++) {
    for (int i = 1; i <= n; i++) {
      st = 1;
      f[i][j] = LONG_LONG_MAX;
      for (int k = 1; k <= i; k++) {
        st *= prime[j];
        long double t = f[i / (k + 1)][j - 1] * st;
        if (f[i][j] > t && i % (k + 1) == 0) f[i][j] = t;
      }
    }
    if (f[n][j] < ans) ans = f[n][j];
  }
  cout.precision(0);
  cout << fixed << ans << endl;
  return 0;
}
