1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <bits/stdc++.h>

using namespace std;

int n,m;
long long M;

long long calc(int n, int p=0, int q=m-1) {
	if (n==0) return 1;
	long long w=0;
	for (int i=0; i<=q; i++) {
		for (int j=max(p,i); j<m; j++) {
			w+=calc(n-1,i,j);
			w%=M;
		}
	}
	return w;
}

int main() {
	scanf("%d %d %lld",&n,&m,&M);
	printf("%lld\n",calc(n));
	return 0;
}