记录
#include<iostream>
using namespace std;
typedef long long ll;
ll n,m,p,jc[200010];
ll qp(ll a,ll b,ll p)
{
a %= p;
ll ans = 1;
while(b > 0)
{
if(b & 1)
ans = ans * a % p;
a = a * a % p;
b >>= 1;
}
return a;
}
ll C(ll n,ll m,ll p)
{
if(m > n)
return 0;
return (jc[n] * qp(jc[m],p - 2,p) % p * (qp(jc[n - m],p - 2,p) % p)) % p;
}
ll Lucas(ll n,ll m,ll p)
{
if(m == 0)
return 1;
return Lucas(n / p,m / p,p) * C(n % p,m % p,p) % p;
}
int main()
{
int t;
cin >> t;
while(t--)
{
cin >> n >> m >> p;
jc[0] = 1;
for(int i = 1;i <= p;i++)
jc[i] = (jc[i - 1] * i) % p;
cout << Lucas(n + m,n,p) << '\n';
}
return 0;
}