#include<bits/stdc++.h>
using namespace std;
const int MAXN=100001;
long long base,x,y,ans=1,p,n,m,a,b;
long long Lucas[MAXN],cnt=1;
inline long long fastpow(long long x,long long y)
{
base=x;
while(y)
{
if(y&1) ans=ans*base%p;
base=base*base%p;
y/=2;
}
return ans;
}
inline long long C(long long n,long long m)
{
if(n<m) return 0;
if(m>n-m) m=n-m;
a=1;b=1;
for(int i=0;i<m;i++)
{
a=(a*(n-i))%p;b=(b*(i+1))%p;
}
return a*fastpow(b,p-2)%p;
}
inline long long lucas(long long n,long long m)
{
if(m==0) return 1;
return lucas(n/p,m/p)*C(n%p,m%p)%p;
}
int main()
{
long long t;
cin>>t;
for(int i=1;i<=t;i++)
{
cin>>n>>m>>p;
cout<<lucas(n+m,n)<<endl;
}
return 0;
}