#include #include #include #include #include #include #include #include #include #include #include #include #define rf freopen("in.in", "r", stdin) #define wf freopen("out.out", "w", stdout) #define rep(i, s, n) for(int i=int(s); i<=int(n); ++i) using namespace std; const int mx = 1e5+10, mod = 1e9+7; int C[111][111]; int dp[111][111]; int n, m, k, tests; void pre_process() { C[0][0] = 1%m; for(int i=1; i <=n; ++i) { C[i][0] = 1%m; for(int j = 1; j<=n; ++j) C[i][j] = (C[i-1][j-1] + C[i-1][j])%m; } } int modexpo(int b, int e) { int ret = 1; while(e) { if(e&1) ret = (1ll*ret*b)%m; b = (1ll*b*b)%m; e >>= 1; } return ret; } int main() { //rf;// wf; scanf("%d", &tests); while(tests--) { scanf("%d %d %d", &n, &k, &m); memset(dp, 0, sizeof dp); pre_process(); dp[1][1] = 1%m; for(int i = 2; i<=n; ++i) { for(int j = 2; j<=i; ++j) { for(int l = 1; l