국소 최댓값
시간 제한4초메모리 제한512 MB
1부터 n*m까지를 n×m 격자에 한 번씩 배치할 때, 각 칸이 자기 행과 열의 다른 어떤 칸보다 작지 않으면 극대점이라 하자. 극대점이 정확히 하나인 배치의 수를 소수 P로 나눈 나머지를 구한다.
문제
정수 행렬 에서 의 국소 최댓값은 가 번째 행과 번째 열에 있는 어떤 정수보다도 작지 않은 위치 이다 (, ).
예를 들어 행렬 에는 국소 최댓값이 세 개 있다. 각각 값 , , 를 가지는 위치 , , 이다.
정수 행렬 가 좋은 행렬이라는 것은 다음 두 조건을 모두 만족한다는 뜻이다.
- 에는 국소 최댓값이 정확히 하나 있다.
- 부터 까지의 각 정수가 에 정확히 한 번씩 나타난다.
, 과 소수 가 주어질 때, 크기 인 좋은 행렬의 개수를 로 나눈 나머지를 구하시오.
입력
첫 번째 줄에 세 정수 , , 가 주어진다. 이고 이다. 는 소수임이 보장된다.
출력
좋은 행렬의 개수를 로 나눈 나머지를 한 줄에 출력한다.