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 P[21] = {1,  2,  3,  5,  7,  11, 13, 17, 19, 23, 29,
             31, 37, 41, 43, 47, 53, 59, 61, 67, 71};
const long long int Inf = 1000000000000000000;
int n, np, S[30];
long long int r, ra, rp;
long long int Pot(int a, int b) {
  long long int rt = 1, ra = a;
  ;
  for (int i = 1; i <= b; i++) rt = rt * ra;
  return rt;
}
void Calcula(int m) {
  int i, j, k;
  if (m == 1) {
    ra = 1;
    for (j = 1; j <= np; j++) {
      rp = Pot(P[j], S[j] - 1);
      if (Inf / rp > ra)
        ra = ra * rp;
      else
        ra = Inf;
    }
    if (ra < r) r = ra;
  } else {
    for (i = 60; i >= 2; i--)
      if (m % i == 0) {
        S[++np] = i;
        Calcula(m / i);
        np--;
      }
  }
}
int main() {
  cin >> n;
  r = Inf;
  np = 0;
  S[0] = 2000;
  Calcula(n);
  cout << r;
  cin.get();
}
