#include<bits/stdc++.h> using namespace std; typedef long long ll; const int INF=0x3f3f3f3f; const int MAX_N=300+5; const int MAX_M=506+5; ll a,b,m; ll mod_pow(ll x,ll n,ll mod,bool &t){ t=false; if(n==0)t=(1>=mod); ll res=1; while(n>0){ if(n&1)res*=x; x*=x; n>>=1; if(res>=mod){res%=mod;t=true;} if(n&&x>=mod){x%=mod;t=true;} } return res; } ll phi(ll n){ ll res=n; for(ll i=2;i*i<=n;i++){ if(n%i==0){ res=res/i*(i-1); while(n%i==0)n/=i; } } if(n>1)res=res/n*(n-1); return res; } ll f(ll n,ll m,bool &t){ if(n==0){ t=(1>=m); return 1%m; } if(m==1){ t=true; return 0; } ll h=phi(m); ll k=f(n-1,h,t); if(t)k+=h; return mod_pow(a,k,m,t); } int main(){ int T; scanf("%d",&T); while(T--){ scanf("%lld%lld%lld",&a,&b,&m); bool t; printf("%lld\n",f(b,m,t)); } return 0; }