자동차

각 칸에 행 우선 번호가 들어 있는 행렬에서 K번의 행 곱셈과 열 곱셈을 순서대로 적용한 뒤 전체 합을 10^9+7로 나눈 나머지를 구한다.

보통4수학구현해시맵누적 합아직 제출이 없습니다시간 제한1초메모리 제한64 MB

문제

Mirko는 자동차 뒷좌석에서 NNMM열짜리 행렬을 찾았다. 첫째 행에는 1,2,,M1, 2, \dots, M이 차례로 적혀 있고, 둘째 행에는 M+1,M+2,,2MM+1, M+2, \dots, 2M이 적혀 있다. 같은 규칙으로 이어져 NN째 행에는 (N1)M+1,(N1)M+2,,NM(N-1)M+1, (N-1)M+2, \dots, NM이 적혀 있다.

N=3N = 3, M=4M = 4인 경우는 다음과 같다.

1234
5678
9101112

이 행렬이 심심했던 Mirko는 행이나 열을 하나 고른 뒤 그 줄에 있는 값에 모두 음이 아닌 정수를 곱하는 작업을 KK번 했다. Mirko는 최종 행렬에 있는 모든 값의 합을 알고 싶다. 합이 매우 커질 수 있으므로 109+710^9+7로 나눈 나머지를 구하면 된다.

입력

첫째 줄에 NN (1N1061 \le N \le 10^6), MM (1M1061 \le M \le 10^6), KK (1K10001 \le K \le 1000)이 공백으로 구분되어 주어진다. 다음 KK줄에는 작업이 수행된 순서대로 한 줄에 하나씩 주어진다.

  • "R X Y"는 XX째 행에 있는 값에 모두 YY를 곱한다는 뜻이다. XX1XN1 \le X \le N인 정수이고, YY0Y1090 \le Y \le 10^9인 정수이다.
  • "S X Y"는 XX째 열에 있는 값에 모두 YY를 곱한다는 뜻이다. XX1XM1 \le X \le M인 정수이고, YY0Y1090 \le Y \le 10^9인 정수이다.

출력

최종 행렬에 있는 모든 값의 합을 109+710^9+7로 나눈 나머지를 첫째 줄에 출력한다.

힌트

첫 번째 예제를 살펴보자. 둘째 행에 4를 곱하고, 넷째 열에 1을 곱하고, 셋째 행에 2를 곱한 뒤, 둘째 행에 다시 0을 곱하면 행렬은 다음과 같이 된다.

1234
0000
18202224

모든 값의 합은 1+2+3+4+0+0+0+0+18+20+22+24=941 + 2 + 3 + 4 + 0 + 0 + 0 + 0 + 18 + 20 + 22 + 24 = 94이다.