#include<bits/stdc++.h>
using namespace std;
inline int read(){
int x=0;
char ch;
ch=getchar();
while(ch>=48&&ch<=57)x=x*10+ch-48,ch=getchar();
return x;
}
void write(int x){
if(x>9)write(x/10);
putchar(x%10+48);
}
int t,p;
int jc[100005];
inline int ksm(int x,int k){
int ans=1;
while(k){
if(k&1)ans=ans*x%p;
x=x*x%p,k>>=1;
}
return ans;
}
inline void init(){
jc[0]=1;
for(int i=1;i<=p;i++)jc[i]=jc[i-1]*i%p;
}
inline int c(int n,int m){
if(n<m)return 0;
return jc[n]*ksm(jc[m],p-2)%p*ksm(jc[n-m],p-2)%p;
}
inline int lucas(int n,int m){
if(!m)return 1;
return lucas(n/p,m/p)*c(n%p,m%p)%p;
}
int n,m;
int main(){
t=read();
while(t--){
n=read(),m=read(),p=read();
init();
int ans=lucas(n+m,n);
write(ans),puts("");
}
}