// luogu-judger-enable-o2#include<cmath>#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>#define For(i, a, b) for (i = a; i <= b; i++)constint N =1005;int A, n, ZZQ, f[N][N];intqpow(int a,int b){int res =1;while(b){if(b &1) res =1ll* res * a % ZZQ;
a =1ll* a * a % ZZQ;
b >>=1;}return res;}intLagrange(int A){int i, j, res =0;
For (i,0,(n <<1)){int x1 =1, x2 =1;
For (j,0,(n <<1))if(j != i){
x1 =1ll* x1 *(A - j + ZZQ)% ZZQ;
x2 =1ll* x2 *(i - j + ZZQ)% ZZQ;}
res =(1ll* x1 *qpow(x2, ZZQ -2)% ZZQ *
f[n][i]+ res)% ZZQ;}
For (i,1, n) res =1ll* res * i % ZZQ;return res;}intmain(){int i, j;
std::cin >> A >> n >> ZZQ;
For (j,0,(n <<1)) f[0][j]=1;
For (i,1, n) For (j,1,(n <<1))
f[i][j]=(1ll* j * f[i -1][j -1]+ f[i][j -1])% ZZQ;
std::cout <<Lagrange(A % ZZQ)<< std::endl;return0;}