L=6**8 P=[[]for _ in range(L)] for p in range(2,L): if not P[p]: for q in range(p,L,p):P[q].append(p) def g(m,b,p): crr=m%p for n in range(22): if crr==1:break crr=pow(crr,b,p) return n def f(B,N,M): E=max(N,max(g(M,B,p)for p in P[B])) return pow(M,B**E,B**(E+N))//(B**E)if E!=21 else-1 for _ in range(int(input())):print(f(*map(int,input().split())))