#include <bits/stdc++.h>
using namespace std;
using ll = long long ;
const int N = 1e5 + 50;
ll fac[N];
ll divfac[N];
ll ksm(ll a,ll b,ll p) {
ll ret = 1;
while (b) {
if (b & 1) ret = ret * a % p;
a = a * a % p ;
b >>= 1;
}
return ret % p;
}
void init(ll p) {
fac[0] = divfac[0] = 1;
for (int i = 1;i <= 1e5; i++) {
fac[i] = fac[i - 1] * i % p;
divfac[i] = divfac[i - 1] * ksm(i,p - 2,p) % p;
}
}
ll getc(ll a,ll b,ll p) {
if (b > a) return 0;
return fac[a] % p * divfac[b] % p * divfac[a - b] % p;
}
ll lucas(ll a,ll b,ll p) {
if (b == 0) return 1;
return getc(a%p,b%p,p) * lucas(a/p,b/p,p) % p;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
int n; cin >> n;
while (n--) {
ll a,b,p; cin >> a >> b >> p;
init(p);
ll ans = lucas(a,a + b,p);
cout << ans << '\n';
}
return 0;
}