Jonny 是一名唤魔者。与其他唤魔者一样,Jonny 同样热衷于把蓝色的羊变成红色。
这一天,Jonny 潜入了 Steve 的羊圈。Steve 的羊圈可以用一个 的字符矩阵 表示,其中,对于任意 ,若 ,则这个位置有一头红羊;若 ,则这个位置有一头蓝羊;若 ,则这个位置没有羊。
Jonny 可以施展任意次魔法,使任意一头蓝羊变成红羊。对于任意可以通过施展魔法得到的矩阵 ,我们称之为它是原矩阵 的一个变换。注意可以不施展魔法。
对于一个变换,Jonny 认为它是好的,当且仅当在这个变换中任意一行最多仅有一头红羊,且任意一列最多仅有一头蓝羊。
:::info[形式化描述]
对于 的一个变换 ,当且仅当它满足:
此时称 是 的一个好的变换。
:::
现在,Jonny 想知道,对于所有合法的变换,有多少变换是好的。由于答案可能很大,你只需要输出方案数对 取模的结果。