from math import sqrt from itertools import accumulate N = 5*(10**6)+1 l = [i for i in range(N)] al = list(accumulate(l)) T = int(input()) for _ in range(T): A,P = map(int,input().split()) flg = False for i in range(2,int(sqrt(P)+1)): if P%i == 0: flg = True break if flg: print(-1) else: a = A%P ans = a**al[P]%P print(ans)