#include <iostream>
#include <cmath>
#include <cstdio>
using namespace std;
int f[15];
int p,m;
int euler_phi(int n){
int m=(int)sqrt(n+0.5);
int ans=n;
for(int i=2;i<=m;i++)if(n%i==0){
ans=ans/i*(i-1);
while(n%i==0)n/=i;
}
if(n>1)ans=ans/n*(n-1);
return ans;
}
long long Pow(long long x,int n){
if(!n)return 1;
long long res=Pow(x,n/2);
res=res*res%f[m];
if(n&1)res=res*x%f[m];
return res;
}
int main()
{
// freopen("in","r",stdin);
f[0]=1;
for(int i=1;i<=12;i++)f[i]=f[i-1]*i;
int cas=1;
while(cin>>p>>m){
if(cas++>1)cout<<endl;
int phi=euler_phi(f[m]);
// cout<<"phi:"<<phi<<endl;
int pp=p;
while(pp<phi)pp*=p;
long long res=pp%phi;
// cout<<"res:"<<res<<endl;
while(1){
long long tmp=Pow(p,res%phi+phi)%f[m];
// cout<<"tmp:"<<tmp<<endl;
if(tmp==res)break;
res=tmp;
}
cout<<res<<endl;
}
return 0;
}