#include<stdio.h>
#include<math.h>
int isprime[100000001];
int prime[1000001];
int cnt=0;
void get_prime(int n)
{
isprime[1]=1;
for(int i=2;i<n;i++)
{
if(!isprime[i])
{
prime[++cnt]=i;
}
for(int j=1;j<=cnt&&i*prime[j]<=n;j++)
{
isprime[i*prime[j]]=1;
if(i%prime[j]==0)
{
break;
}
}
}
}
int max(int x,int y)
{
if(x>y)
{
return x;
}
return y;
}
int main()
{
int n,maxn;
scanf("%d",&n);
get_prime(n);
for(int i=1;i<=cnt;i++)
{
for(int j=i+1;j<=cnt;j++)
{
if(prime[i]*prime[j]==n)
{
maxn=max(prime[j],prime[i]);
break;
}
}
}
printf("%d",maxn);
return 0;
}