2991.Special Matrices

Time Limit: 1s Memory Limit: 256MB

An n \times n square matrix is special, if:
it is binary, that is, each cell contains either a 0, or a 1; the number of ones in each row and column equals 2.
You are given n and the first m rows of the matrix. Print the number of special n \times n matrices, such that the first m rows coincide with the given ones.

As the required value can be rather large, print the remainder after dividing the value by the given number mod.

Input Format(From the terminal/stdin)

The first line of the input contains three integers n, m, mod (2 \le n \le 500, 0 \le m \le n, 2 \le mod \le 109). Then m lines follow, each of them contains n characters - the first rows of the required special matrices. Each of these lines contains exactly two characters '1', the rest characters are '0'. Each column of the given m \times n table contains at most two numbers one.

Output Format(To the terminal/stdout)

Print the remainder after dividing the required value by number mod.

Sample Input 1

Copy
3 1 1000
011
 · ·    \n
   \n

Sample Output 1

Copy
2
 \n

Sample Input 2

Copy
4 4 100500
0110
1010
0101
1001
 · ·      \n
    \n
    \n
    \n
    \n

Sample Output 2

Copy
1
 \n

Hints

For the first test the required matrices are:

011
101
110
011
110
101

In the second test the required matrix is already fully given, so the answer is 1.

Submit

请先 登录

© 2025 FAQs