#include<bits/stdc++.h>
using namespace std;
int p;
long long inv[2000050]={0,1},f[1000000];
long long fac(int x)
{
if(!x) return 1;
if(f[x]) return f[x];
long long ans=1;
for(int i=1;i<=x;i++)
{
ans*=i;
ans%=p;
}
return f[x]=ans;
}
int C(int n,int m)
{
if(m>n) return 0;
return fac(n)*inv[fac(m)]%p*inv[fac(n-m)]%p;
}
int lucas(int n,int m)
{
return m==0?1:C(n%p,m%p)*lucas(n/p,m/p)%p;
}
int main()
{
int n,m,t;
cin>>t;
for(int i=1;i<=t;i++)
{
cin>>n>>m>>p;
for(int i=2;i<=n+m;i++)
inv[i]=(long long)(p-p/i)*inv[p%i]%p;
cout<<lucas(n+m,n)<<'\n';
}
return 0;
}