각 칸에 행 우선 번호가 들어 있는 행렬에서 K번의 행 곱셈과 열 곱셈을 순서대로 적용한 뒤 전체 합을 10^9+7로 나눈 나머지를 구한다.
보통4수학구현해시맵누적 합아직 제출이 없습니다시간 제한1초메모리 제한64 MBMirko는 자동차 뒷좌석에서 N행 M열짜리 행렬을 찾았다. 첫째 행에는 1,2,…,M이 차례로 적혀 있고, 둘째 행에는 M+1,M+2,…,2M이 적혀 있다. 같은 규칙으로 이어져 N째 행에는 (N−1)M+1,(N−1)M+2,…,NM이 적혀 있다.
N=3, M=4인 경우는 다음과 같다.
| 1 | 2 | 3 | 4 |
| 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 |
이 행렬이 심심했던 Mirko는 행이나 열을 하나 고른 뒤 그 줄에 있는 값에 모두 음이 아닌 정수를 곱하는 작업을 K번 했다. Mirko는 최종 행렬에 있는 모든 값의 합을 알고 싶다. 합이 매우 커질 수 있으므로 109+7로 나눈 나머지를 구하면 된다.
첫째 줄에 N (1≤N≤106), M (1≤M≤106), K (1≤K≤1000)이 공백으로 구분되어 주어진다. 다음 K줄에는 작업이 수행된 순서대로 한 줄에 하나씩 주어진다.
최종 행렬에 있는 모든 값의 합을 109+7로 나눈 나머지를 첫째 줄에 출력한다.
첫 번째 예제를 살펴보자. 둘째 행에 4를 곱하고, 넷째 열에 1을 곱하고, 셋째 행에 2를 곱한 뒤, 둘째 행에 다시 0을 곱하면 행렬은 다음과 같이 된다.
| 1 | 2 | 3 | 4 |
| 0 | 0 | 0 | 0 |
| 18 | 20 | 22 | 24 |
모든 값의 합은 1+2+3+4+0+0+0+0+18+20+22+24=94이다.