。。。

/**************************************************************
    Problem: 1053
    User: lxy8584099
    Language: C++
    Result: Accepted
    Time:68 ms
    Memory:1288 kb
****************************************************************/
 
/*
    约数个数计算方法
    预处理可能取到的最大的质数 
    然后暴力更新答案 
*/
#include<iostream>
#include<cstdio>
#include<cstring>
#define inf 0x7fffffff
#define ll long long 
using namespace std;
int n,ans=1,num=1;
int p[15]={1,2,3,5,7,11,13,17,19,23,29,31};
void dfs(int k,ll now,int cnt,int last)
{
    if(k==12)
    {
        if(now>ans&&cnt>num){ans=now;num=cnt;}
        if(now<=ans&&cnt>=num){ans=now;num=cnt;}
        return;
    }
    int t=1;
    for(int i=0;i<=last;i++)
    {
        dfs(k+1,now*t,cnt*(i+1),i);
        t*=p[k];
        if(now*t>n)break;
    }
}
int main()
{
    scanf("%d",&n);
    dfs(1,1,1,20);
    printf("%d",ans);
    return 0;
}