#include<bits/stdc++.h>
using namespace std;
const int N=305;
int n,m,mod,dp[N][N][N];
#define upd(x,y) x=(x+y>=mod?x+y-mod:x+y)
int main()
{
	scanf("%d%d%d",&n,&m,&mod);
	dp[0][1][0]=1;
	for(int i=0;i<=n;i++)
	{
		for(int j=1;j<=m;j++)
		{
			for(int k=i;k>=0;k--)
			{
				if(k) upd(dp[i][j][k-1],dp[i][j][k]);
				else upd(dp[i][j+1][i],dp[i][j][k]);
				upd(dp[i+1][j][k],1ll*dp[i][j][k]*(k+1)%mod);
			}
		}
	}
	printf("%d\n",dp[n][m][0]);
	return 0;
}