#include<bits/stdc++.h>
using namespace std;
const int MAXN=2001;
int n,k,p,dp[MAXN][MAXN],sum[MAXN][MAXN],cnt[MAXN][MAXN],tot,ans;
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
scanf("%d%d%d",&n,&k,&p);
for(int i(0);i<=n+1;++i)
for(int j(0);j<=n+1;++j)
sum[i][j]=dp[i][j]=cnt[i][j]=0;
ans=0;
dp[0][0]=1;
for(int i(0);i<=k;++i)
dp[1][i]=1;
for(int i(2);i<=n+1;++i)
{
tot=0;
for(int j(0);j<=k;++j)
(tot+=dp[i-1][j])%=p;
sum[i-2][0]=dp[i-2][0]*k%p;
cnt[i-2][0]=dp[i-2][0]%p;
for(int j(1);j<=k;++j)
{
sum[i-2][j]=(sum[i-2][j-1]+dp[i-2][j]*(k-j)%p)%p;
cnt[i-2][j]=(sum[i-2][j-1]+dp[i-2][j])%p;
}
for(int j(0);j<=k;++j)
dp[i][j]=(tot-(sum[i-2][k-j]-cnt[i-2][k-j]*j)%p+p)%p;
}
printf("%d\n",dp[n+1][0]);
}
return 0;
}