#include <iostream>
#include <algorithm>
using namespace std;
const int primes[] = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29};
long long N;
long long best_num;
int best_cnt;
void dfs(int idx, long long num, int cnt, int last_exp) {
if (cnt > best_cnt || (cnt == best_cnt && num < best_num)) {
best_cnt = cnt;
best_num = num;
}
for (int exp = 1; exp <= last_exp; ++exp) {
if (num > N / primes[idx]) {
break;
}
num *= primes[idx];
dfs(idx + 1, num, cnt * (exp + 1), exp);
}
}
int main() {
cin >> N;
best_num = 1;
best_cnt = 1;
dfs(0, 1, 1, 30);
cout << best_num << endl;
return 0;
}