题目描述
给定整数 N 和 K。
如果对于所有的 1≤i≤K,都有 1≤ai≤i,则称长度为 K 的整数数组 a=[a1,a2,…,aK] 是良好的。
如果长度为 NK 的整数数组 b=[b1,b2,…,bNK] 可以被分成 N 个(不一定连续)长度为 K 的子序列,每个子序列都是良好的,则称其为神奇的。
定义 f(pos,val) 表示使得 bpos=val 的神奇序列 b 的数量。
求解所有 1≤pos≤NK,1≤val≤K 的 f(pos,val) 的值,由于这些数字可能很大,输出它们对某个素数 P 取模的结果。
约束条件
- 1≤N≤20
- 1≤K≤20
- 108≤P≤109
- P 是一个素数
输入
从标准输入读入数据,数据格式如下:
N K P
输出
输出 NK 行,第 i 行中的第 j 个数字应等于 (f(i,j)modP)。
示例输入 1
示例输出 1
存在 6 个神奇数组:
- 1,1,1,1 可以分成 b1,b2,b3,b4。
- 1,1,1,2 可以分成 b1,b2,b3,b4。
- 1,2,1,1 可以分成 b1,b2,b3,b4。
- 1,2,1,2 可以分成 b1,b2,b3,b4。
- 1,1,2,1 可以分成 b1,b3,b2,b4。
- 1,1,2,2 可以分成 b1,b3,b2,b4。