n的m次方对q取余
#include<bits/stdc++.h>
using namespace std;
long long cheng(long long x,long long y,long long z)
{
long long ans=0;
while(y)
{
if(y%2)
{
ans=(ans+x)%z;
}
x=(x*2)%z;
y/=2;
}
return ans;
}
long long qwe(long long x,long long y,long long z)
{
long long res=1;
x%=z;
while(y)
{
if(y%2)
{
res=cheng(res,x,z);
}
x=cheng(x,x,z);
y/=2;
}
return res;
}
int main()
{
long long n,m,q;
int t;
cin>>t;
while(t--)
{
cin>>n>>m>>q;
cout<<qwe(n,m,q)<<endl;
}
return 0;
}