import sys q=int(sys.stdin.readline()) # (m * n) mod p = ((m mod p) * (n mod p)) mod p # def fast_pow(a,b,p): #1.递归版本 # if b==1: # return a%p # elif b%2==0: # return (fast_pow(a,b//2,p)**2)%p # else: # return (a*fast_pow(a,b//2,p)**2)%p # def fast_pow(a,b,p): #2.位运算版本 # if b==0: # return 1 # half=fast_pow(a,b>>1,p) # res=(half*half)%p # if b&1: # res=(res*(a%p))%p # return res def fast_pow(a, b, p): #3.迭代版本 res=1 #b = b_0 \times 2^0 + b_1 \times 2^1 + b_2 \times 2^2 + \cdots + b_k \times 2^k base=a%p while b>0: if b&1:#是奇数的话 res=(res*base)%p b>>=1 #相当于除以2 base=(base*base)%p return res for i in range(q): a,b,p=map(int, sys.stdin.readline().split()) print(fast_pow(a,b,p))