#arc107c. [arc107_c]Shuffle Permutation
[arc107_c]Shuffle Permutation
题目描述
给定一个 的矩阵和一个整数 。记第 行第 列的矩阵元素为 。该矩阵包含 这 个数,每个数恰好出现一次。
Sigma 可以任意多次、任意顺序地使用以下两种操作:
- 挑选两个满足对所有的 () 都有 的整数 ,交换第 列和第 列的位置。
- 挑选两个满足对所有的 () 都有 的整数 ,交换第 行和第 行的位置。
求 Sigma 可以通过这些操作得到的矩阵的数量(对 取模)。
约束条件
- 是 的一个排列。
- 输入中的所有数字均为整数。
输入
从标准输入读入输入数据的格式如下:
输出
打印 Sigma 可以通过操作得到的矩阵的数量(对 取模)。
示例输入 1
3 13
3 2 7
4 8 9
1 6 5
示例输出 1
12
例如,Sigma 可以交换两列,设 。交换后得到的矩阵为:
2 3 7
8 4 9
6 1 5
此后,他可以交换两行向量,设 ,得到的矩阵为:
6 1 5
8 4 9
2 3 7
示例输入 2
10 165
82 94 21 65 28 22 61 80 81 79
93 35 59 85 96 1 78 72 43 5
12 15 97 49 69 53 18 73 6 58
60 14 23 19 44 99 64 17 29 67
24 39 56 92 88 7 48 75 36 91
74 16 26 10 40 63 45 76 86 3
9 66 42 84 38 51 25 2 33 41
87 54 57 62 47 31 68 11 83 8
46 27 55 70 52 98 20 77 89 34
32 71 30 50 90 4 37 95 13 100
示例输出 2
348179577