/*将指数转化为2进制,实现快速幂的计算,注意两处数据可能溢出,设为long long
*/
#include <iostream>
using namespace std;
long long getmod(long long a,int b,int p){//计算 a的b次方mod(p)
    long long ans=1;
    a=a%p;
    while(b!=0){
        if(b%2==1){
            ans*=a;
            ans=ans%p;//ans可能会溢出
        }
        b/=2;
        a*=a;//a可能溢出
        a=a%p;
    }
    return ans;

}

int main() {
    long long a;
    int b, p, q;
    scanf("%d",&q);
    for(int i=0;i<q;i++){
        scanf("%lld %d %d ",&a,&b,&p);
        printf("%lld\n",getmod(a,b,p));

    }
}