#include #include #define ll long long ll powmod(ll a,ll n,int m){ ll x=1; a%=m; while(n){ if(n%2)x=x*a%m; a=a*a%m; n/=2; } return x; } ll gcd(ll x,ll y){ while(y){ ll t=x%y; x=y; y=t; } return x; } ll inv(ll a,ll p){ ll b=p,tx,ty,t,x=1,y=0,x2=0,y2=1; while(b){ tx=x-a/b*x2;x=x2;x2=tx; ty=y-a/b*y2;y=y2;y2=ty; t=a%b;a=b;b=t; } if(a!=1)return-1; return x>0?x:x+p; } int subsub(ll x,ll y,int p,int mod){ //(Z/modZ)^*における位数pの元x,yに対し、x^n*y=1を満たすnを返す int cnt=0; while(y!=1){ y=y*x%mod; cnt++; } return cnt; } int modrootsub(int a,int p,int e,int mod){ int q=mod-1; int s=0; while(q%p==0)q/=p,s++; // Z/(p^s)Z * Z/qZ int pe=1; for(int i=0;i1)a=modrootsub(a,n,1,p); return a; } int main(){ int t; scanf("%d",&t); while(t--){ int a,n,m; scanf("%d%d%d",&m,&n,&a); printf("%d\n",modroot(a,n,m)); } }