# 解説を見た。ウィルソンの定理は知っておくべきか。

def calc(N,M):
    if M<=N:
        return 0
    if M<=2*10**5:
        ANS=1
        for i in range(1,N+1):
            ANS=ANS*i%M
        return ANS%M

    x=int(M**(1/2))

    for j in range(2,x+1):
        if M%j==0:
            return 0

    ANS=-1
    for j in range(N+1,M):
        ANS=ANS*pow(j,M-2,M)%M
    return ANS%M
    
    
    


T=int(input())
for tests in range(T):
    N,M=map(int,input().split())

    print(calc(N,M))