#include<bits/stdc++.h>
typedef long long ll;
typedef __int128_t lll;
ll mulp(ll a,ll b,ll p){
return a*(lll)b%p;
}
ll sqrp(ll a,ll k,ll p){
return (a*(lll)a+k)%p;
}
ll gcd(ll a,ll b){return a?gcd(b%a,a):b;}
ll pollard(ll a,ll u,ll k){
ll z=k,zz=sqrp(k,u,a);
for(int i=0;i<1000000;++i){
z=sqrp(z,u,a);
zz=sqrp(zz,u,a);
zz=sqrp(zz,u,a);
ll t=gcd(zz-z+a,a);
if(t!=1 && t!=a)return t;
}return 0;
}
ll fac(ll a){
for(int i=1;i<=11;++i)
if(ll t=pollard(a,i,i))
return t;
return a;
}
int main(){
ll a;
while(~scanf("%lld",&a))
printf("%lld
",fac(a));
return 0;
}