#ARC104D. [ARC104D] Multiset Mean

[ARC104D] Multiset Mean

配点 : 700700

問題文

正の整数 N,K,MN, K, M が与えられるので、11 以上 NN 以下の全ての整数 xx について、次の問題を解いてください。

  • 1,2,3,N1, 2, 3 \cdots, N の各整数をそれぞれ 00 個以上 KK 個以下含むような空でない多重集合であって、平均が xx であるものの個数を MM で割った余りを求めよ。

制約

  • 1N,K1001 \leq N, K \leq 100
  • 108M109+910^8 \leq M \leq 10^9 + 9
  • MM は素数である
  • 入力は全て整数である

入力

入力は以下の形式で標準入力から与えられる。

NN KK MM

出力

以下の形式で出力せよ。

c1c_1

c2c_2

::

cNc_N

ただし cxc_x は、平均が xx である多重集合の個数を MM で割った余りを表す。

3 1 998244353
1
3
1

11 以上 33 以下の整数をそれぞれ 00 個以上 11 個以下含むような空でない多重集合を考えます。

  • 平均が x=1x = 1 である多重集合は、{1}\{1\}11 個です。
  • 平均が x=2x = 2 である多重集合は、{2},{1,3},{1,2,3}\{2\}, \{1, 3\}, \{1, 2, 3\}33 個です。
  • 平均が x=3x = 3 である多重集合は、{3}\{3\}11 個です。
1 2 1000000007
2

11 以上 11 以下の整数をそれぞれ 00 個以上 22 個以下含むような空でない多重集合を考えます。

  • 平均が x=1x = 1 である多重集合は、{1},{1,1}\{1\}, \{1, 1\}22 個です。
10 8 861271909
8
602
81827
4054238
41331779
41331779
4054238
81827
602
8