#include <math.h>
#include <stdio.h>
int root(int x,int y,int k);
int main() {
int x, y;
int k;
while (scanf("%d %d %d", &x, &y,&k) != EOF) { // 注意 while 处理多个 case
printf("%d\n",root(x,y,k));
}
return 0;
}
int root(int x,int y,int k){
if(k==2||y==0) return 1;
int result=1,mod=k-1;
x=x%mod;// 把x变成合理数
while(y){
if(y%2)result=(result*x)%mod;// 对多出来的单独处理
x=(x*x)%mod;// 快速幂
y/=2;
}
return result?result:mod;
}