#28 TLE
#include<bits/stdc++.h>
using namespace std;
long long b,n,c,ans,m,i,j;
char B[1000002],N[1000002];
bool f;
long long p(long long s)
{
long long r=s;
for(j=2;j*j<=s;j++)
{
if(s%j==0)
{
r=r-r/j;
while(s%j==0) s/=j;
}
}
if(s>1) r=r-r/s;
return r;
}
long long k(long long x,long long d)
{
long long o=1;
for(;d;d/=2,x=(x*x)%c)
{
if(d%2==1) o=(o*x)%c;
}
return o;
}
int main()
{
cin>>B>>N>>c,m=p(c);
for(i=0;i<strlen(B);i++) b=(b*10+(B[i]-'0'))%c;
for(i=strlen(N)-1;i>=0;i--)
{
if(N[i]=='0') N[i]='9';
else
{
N[i]-=1;
break;
}
}
for(i=0;i<strlen(N);i++)
{
n=n*10+N[i]-'0';
if(n>=m) f=true;
n%=m;
}
if(f) n+=m;
return ans=(((b-1))%c+c)%c,printf("%lld",ans?ans:c),0;
}