#agc055f. [agc055_f]Creative Splitting
[agc055_f]Creative Splitting
問題文
整数 が与えられます。
長さ の整数列 a=\[a_1, a_2, \\ldots, a_K\] が全ての について を満たすとき、 を良い列と呼びます。
長さ の整数列 b=\[b_1, b_2, \\ldots, b_{NK}\] が次の条件を満たすとき、 を素晴らしい列と呼びます: を 個の長さ の(連続とは限らない)部分列に分解する方法であって、各部分列が良い列であるような方法が存在する。
を、 であるような素晴らしい列 の個数と定義します。
全ての , について を求めてください。これらの数値は非常に大きい可能性があるため、これらを素数 で割った余りを出力してください。
制約
- は素数である。
入力
入力は以下の形式で標準入力から与えられる。
出力
行出力せよ。 行目の 個目の数値が となるようにすること。
入力例 1
2 2 965166677
出力例 1
6 0
4 2
4 2
3 3
以下の 個の素晴らしい列が存在します。
- \[1, 1, 1, 1\]: \[b_1, b_2\], \[b_3, b_4\] に分割できます。
- \[1, 1, 1, 2\]: \[b_1, b_2\], \[b_3, b_4\] に分割できます。
- \[1, 2, 1, 1\]: \[b_1, b_2\], \[b_3, b_4\] に分割できます。
- \[1, 2, 1, 2\]: \[b_1, b_2\], \[b_3, b_4\] に分割できます。
- \[1, 1, 2, 1\]: \[b_1, b_3\], \[b_2, b_4\] に分割できます。
- \[1, 1, 2, 2\]: \[b_1, b_3\], \[b_2, b_4\] に分割できます。