配点 : 1200 点
問題文
次の条件を満たす数列の組 (A0,A1,...,AN) としてありうるものの個数を M で割ったあまりを求めてください。
- 全ての i(0≤i≤N) に対し、Ai は 1 以上 K 以下の整数からなる長さ i の数列である
- 全ての i(1≤i≤N) に対し、Ai−1 は Ai の部分列である。すなわち、ある 1≤xi≤i が存在し、Ai の xi 文字目を取り除いてできる数列が Ai−1 に一致する
- 全ての i(1≤i≤N) に対し、Ai は辞書順で Ai−1 より大きい
制約
- 1≤N,K≤300
- 2≤M≤109
- N,K,M は整数である
入力
入力は以下の形式で標準入力から与えられる。
N K M
出力
数列の組 (A0,A1,...,AN) としてありうるものの個数を M で割ったあまりを出力せよ。
2 2 100
5
以下の 5 つの組が条件を満たします。
- (),(1),(1,1)
- (),(1),(1,2)
- (),(1),(2,1)
- (),(2),(2,1)
- (),(2),(2,2)
4 3 999999999
358
150 150 998244353
186248260