#include<iostream>
#include<cstdio>
using namespace std;
#define LL long long
int prime[10]={2,3,5,7,11,13,17,19,23,29};
LL ans,n,fn;
void print(){
printf("%lld",ans);
}
void dfs(int id,LL preans,LL prefn){
LL op;
if(prefn>fn){//约数和比以前求得最优值的约数和大,则此值较优;
ans=preans;
fn=prefn;
}
if(ans>preans&&prefn==fn) ans=preans;//如果约数和相同,但以前的ans值较大,不能保证比ans小的值得约数和f【n】比ans的f[n]小;
op=preans;
int i;
for(i=1;;i++){
if(op*prime[id]>n) break;
op*=prime[id];
dfs(id+1,op,prefn*(i+1));
}
}
int main(){
freopen ("ant.in","r",stdin);
freopen ("ant.ans","w",stdout);
scanf("%d",&n);
dfs(0,1,1);
print();
}
07-26
07-26