CF489F Special Matrices

题目描述

一个 $n\times n$ 的方阵被称为特殊的,满足下面的条件: + 它是二进制的,每一个格子上只能是 $1$ 或者 $0$ 。 + 每一行的和以及每列的和等于 $2$ 现在,给你 $n$ 以及方阵前 $m$ 行,求前 $m$ 行与给出的 $m$ 行相同的“特殊”方阵的数量。 可能所需的答案会很大,输出其对 $mod$ 取模后的结果。(**并不保证 $mod$ 为质数**)

输入格式

第一行三个整数 $n$, $m$, $mod$ ( $2\le n\le 500 、 0\le m\le n、 2\le mod\le 10^9$ ) 接下来 $m$ 行,每一行给出一个长度为 $n$ 的零一串。第 $i$ 行表示方阵的第 $i$ 行,保证给出的 $m$ 行形成的 $n * m$ 的方阵每一列最多出现两个 $1$ ,同时给出的 $m$ 行,每一行一定包含两个 $1$ 。

输出格式

一行一个数,表示所需值对 $mod$ 取模后的结果。

说明/提示

#### 样例解释: 对于第一个样例,满足条件的矩阵为: $ \color{red} \texttt{011}\\ \texttt{101}\\ \texttt{110} $ $ \color{red} \texttt{011}\\ \texttt{110}\\ \texttt{101} $ 样例二:因为整个 $n\times n$ 的矩阵已经给出,所以只能有一种方案。