AC
#include<bits/stdc++.h>
using namespace std;
int main()
{
long long a,b,q,c,d;
cin>>a>>b>>q;
c=a;
d=b;
long long ans=1;
while(b)
{
if(b%2==1)
{
ans=ans*a%q;
}
a=a*a%q;
b>>=1;
}
cout<<c<<"^"<<d<<" mod "<<q<<"="<<ans;
}
WA
#include<bits/stdc++.h>
using namespace std;
long long az(int a,int b,int q)
{
long long ans=1;
while(b)
{
if(b%2==1)
{
ans=ans*a%q;
}
a=a*a%q;
b/=2;
}
return ans%q;
}
int main()
{
long long a,b,q;
cin>>a>>b>>q;
cout<<a<<"^"<<b<<" mod "<<q<<"="<<az(a,b,q);
}