#include<iostream> #include<cstdio> usingnamespacestd; intgcd(int a, int b) { return b == 0 ? a : gcd(b, a % b); } intqpow(int a, int x, int mo) { int res = 1; while (x) { if (x & 1) res = 1ll * res * a % mo; a = 1ll * a * a % mo; x >>= 1; } return res; } intphi(int x) { int res = x; for (int i = 2; i * i <= x; i++) if (x % i==0) { res = res - res / i; while (x % i == 0) x /= i; } if (x > 1) res = res - res / x; return res; } intsolve(int a, int b, int m) { if(b==0) return1; if(m==1) return0; int pp=phi(m); int t=solve(a,b-1,pp); if(t<pp&&t) return qpow(a,t,m); return qpow(a,t+pp,m); } int a, b, m, T; intmain() { scanf("%d", &T); while (T--) { scanf("%d%d%d", &a, &b, &m); printf("%d\n",solve(a, b, m)%m); } }