#include <stdio.h>
//两个关键点, (a*b)mod q = (a mod q)*(b mod q) mod q;
//              a^n (n>=2) = a^n/2 * a^n/2 (单数情况见代码)
unsigned long long quick(unsigned long long a, unsigned long long b, unsigned long long q)
{
    if (b == 0)
    {
        return 1;
    }
    if (b == 1)
    {
        return a % q;
    }
    unsigned long long k = quick(a, b / 2, q) % q;
    if (b % 2)
    {
        // 单数

        return ((k * k) % q * (a % q)) % q;
    }
    else
    {
        // 双数
        return k * k % q;
    }
}
int main()
{
    int times;
    scanf("%d",×);
    while(times--){
unsigned long long a, b, q;
    scanf("%lld%lld%lld", &a, &b, &q);

    printf("%lld\n", quick(a, b, q));
    }
    
    return 0;
}