#include<cstdio>#include<cstring>#include<algorithm>usingnamespace std;#define N 510int f[2][N][N];intmain(){int n, m, P, i, j, k;scanf("%d%d%d",&n,&m,&P);
f[0][m +1][0]=1;for(i =0; i <= n + m -2; i++){int o = i %2;memset(f[o ^1],0,sizeof(f[o ^1]));for(j =0; j <= m +1; j++){for(k =0; k <= n; k++)if(f[o][j][k]){if(i +1<= n){(f[!o][m +1][0]+= f[o][j][k])%= P;// a no b no(f[!o][m +1][k +1]+= f[o][j][k])%= P;// a yes b noif(j && m >1)(f[!o][min(m -2, j > m ? j : j -1)][0]+= f[o][j][k])%= P;//a no b yesif(j && k < i -max(i +1+1- m,1)+1)(f[!o][j > m ? j : j -1][k +1]+= f[o][j][k])%= P;//a yes b yes}else{(f[!o][m +1][k]+= f[o][j][k])%= P;// a no b noif(j && k < n -max(i +1+1- m,1)+1)(f[!o][j > m ? j : j -1][k]+= f[o][j][k])%= P;//a no b yes}}}}int ans =0;for(j =0; j <= m +1; j++)for(k =0; k <= n; k++)(ans += f[(n + m -1)%2][j][k])%= P;printf("%d\n", ans);return0;}