纯手写(迫真)//我在写什么?
{#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define NO cout << "NO" << endl;
#define YES cout << "YES" << endl;
ll gcd(ll p, ll q) {return (p % q == 0)? q : gcd(q, p % q);}
ll lcm(ll p, ll q) {return p * q / gcd(p, q);}
ll qpow(ll a, ll b, ll p) {//快速幂计算a^b mod pll res = 1;while (b) {if (b & 1) res = res * a % p;a = a * a % p;b >>= 1;}return res;
}
ll C(ll n, ll m, ll p) {//C(n, m) mod pif (m > n) return 0; ll up = 1, down = 1;for (ll i = 1; i <= m; i++) {up = up * (n - m + i) % p;//分子n*(n-1)*...*(n-m+1)down = down * i % p;//分母m! I AM M}return up * qpow(down, p - 2, p) % p;//分子*分母的逆元 mod p
}
ll lucas(ll n, ll m, ll p) {if (m == 0) return 1;return C(n % p, m % p, p) * lucas(n / p, m / p, p) % p;
}
void solve() {ll n, m, p;cin >> n >> m >> p;cout << lucas(n + m, n, p) << endl;
}
int main() {ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr);int t;cin >> t;while (t--) {solve();}return 0;
}}