int qmi(int a,int b,int mod){
a%=mod;
int res = 1;
while(b>0){
if(b&1)
res = res*a%mod;
a = a*a%mod;
b >>= 1;
}
return res;
}
#include <bits/stdc++.h>
#define endl '\n'
#define int long long
#define INF 0x3f3f3f3f3f
const int N = 1000010;
using namespace std;
int arr[N];
//数据规模太大 自定义快速幂函数
//还需要边除边模 会少很多点的分 第一次做吃了大亏
int qmi(int a,int b,int mod){
a%=mod;
int res = 1;
while(b>0){
if(b&1)
res = res*a%mod;
a = a*a%mod;
b >>= 1;
}
return res;
}
signed main()
{
int a,b,p;
cin>>a>>b>>p;
int ans = qmi(a,b,p)%p;
cout<<a<<'^'<<b<<' '<<"mod"<<' '<<p<<'='<<ans;
return 0;
}