#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int MAX=1000010;
int prime[MAX];
int sprime[MAX];
int pri[MAX];
int b,v;
void isprime()
{
memset(pri,1,sizeof(pri));
for(int i=2;i<MAX;i++)
{
if(pri[i])
{
prime[b++]=i;
for(int j=i+i;j<MAX;j+=i)
pri[j]=0;
}
}
}
void DIVIDE(int n)
{
v=0;
int t=(int)sqrt(1.0*n);
for(int i=0;i<t;i++)
{
if(n%prime[i]==0)
{
sprime[v++]=prime[i];
while(n%prime[i]==0) n/=prime[i];
}
}
if(n>1) sprime[v++]=n;
}
ll KSM(ll a,ll b,ll c)
{
ll ans=1;
a=a%c;
while(b>0)
{
if(b&1)
ans=(ans*a)%c;
b/=2;
a=(a*a)%c;
}
return ans;
}
int main()
{
int p;
isprime();
scanf("%d",&p);
DIVIDE(p-1);
for(int i=2;i<p;i++)
{
int flag=1;
for(int j=0;j<v;j++)
{
int k=(p-1)/sprime[j];
if(KSM(i,k,p)==1) {
flag=0;
break;
}
}
if(flag)
{
int u=i;
printf("%d\n",u);
break;
}
}
return 0;
}