An $*n* × *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* × *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
The first line of the input contains three integers $*n*$, $*m*$, $*mod*$ ($2 ≤ *n* ≤ 500$, $0 ≤ *m* ≤ *n*$, $2 ≤ *mod* ≤ 10^{9}$). 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* × *n*$ table contains at most two numbers one.
Output
Print the remainder after dividing the required value by number $*mod*$.
Note
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.
样例
3 1 1000
011
2
4 4 100500
0110
1010
0101
1001
1
题面与样例版权归 Codeforces 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。