#agc055f. [agc055_f]Creative Splitting

[agc055_f]Creative Splitting

题目描述

给定整数 NNKK

如果对于所有的 1iK1 \leq i \leq K,都有 1aii1 \leq a_i \leq i,则称长度为 KK 的整数数组 a=[a1,a2,,aK]a=[a_1, a_2, \ldots, a_K]良好的

如果长度为 NKNK 的整数数组 b=[b1,b2,,bNK]b=[b_1, b_2, \ldots, b_{NK}] 可以被分成 NN 个(不一定连续)长度为 KK 的子序列,每个子序列都是良好的,则称其为神奇的

定义 f(pos,val)f(pos, val) 表示使得 bpos=valb_{pos}=val 的神奇序列 bb 的数量。

求解所有 1posNK1 \leq pos \leq NK1valK1 \leq val \leq Kf(pos,val)f(pos, val) 的值,由于这些数字可能很大,输出它们对某个素数 PP 取模的结果。

约束条件

  • 1N201 \leq N \leq 20
  • 1K201 \leq K \leq 20
  • 108P10910^8 \leq P \leq 10^9
  • PP 是一个素数

输入

从标准输入读入数据,数据格式如下:

NN KK PP

输出

输出 NKNK 行,第 ii 行中的第 jj 个数字应等于 (f(i,j)modP)(f(i, j) \mod P)


示例输入 1

2 2 965166677

示例输出 1

6 0 
4 2 
4 2 
3 3 

存在 66 个神奇数组:

  • 1,1,1,11, 1, 1, 1 可以分成 b1,b2b_1, b_2b3,b4b_3, b_4
  • 1,1,1,21, 1, 1, 2 可以分成 b1,b2b_1, b_2b3,b4b_3, b_4
  • 1,2,1,11, 2, 1, 1 可以分成 b1,b2b_1, b_2b3,b4b_3, b_4
  • 1,2,1,21, 2, 1, 2 可以分成 b1,b2b_1, b_2b3,b4b_3, b_4
  • 1,1,2,11, 1, 2, 1 可以分成 b1,b3b_1, b_3b2,b4b_2, b_4
  • 1,1,2,21, 1, 2, 2 可以分成 b1,b3b_1, b_3b2,b4b_2, b_4