시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
2 초 256 MB 32 12 5 35.714%

문제

JOI ちゃんは友達とマスコットで遊んでいた.楽しかった時間はあっという間に過ぎ去り,友達が帰った 今は後片付けの時間である.

JOI ちゃんはマスコットを R × C 個持っていて,片付けには縦 R 行,横 C 列のマスが並んだ長方形の領 域を使う.1 個のマスには,1 個のマスコットが置かれる.上から A 行目,左から B 列目のマスのことを (A, B) と表現することにする.片付けが始まる段階で既に N 個のマスコットが置かれている.片付けを始 めるときに少なくとも 1 個はマスコットが置かれていないマスがある.

JOI ちゃんはマスコットを 1 個ずつ置いて片付けをする.新しくマスコットを 1 個置いたときに,マス コットのあるマス全体が 1 個の長方形となれば,JOI ちゃんは少し幸せになる(最初の状態でマスコット のあるマス全体が 1 個の長方形になっていた場合を除く).マスコットのあるマス全体が 1 個の長方形と なるとは,ある 4 つの整数 r1, r2, c1, c2 (1 ≤ r1 ≤ r2 ≤ R かつ 1 ≤ c1 ≤ c2 ≤ C) が存在して,r1 ≤ i ≤ r2 かつ c1 ≤ j ≤ c2 を満たすどのマス (i, j) にもマスコットがあり,さらに他のいずれのマスにもマスコットがない ことをいう.少し幸せになる回数が多ければ多いほど JOI ちゃんは今晩ぐっすり眠ることができる.

マスコットを置く際,置くマスコットの種類は区別しないものとする.少し幸せになる回数が最大とな るような置き方は全部で何通りあるだろうか.

マスコットを片付ける場所と既に置かれているマスコットの情報が与えられると,少し幸せになる回数が 最大となるようなマスコットの置き方の個数を 1 000 000 007 で割った余りを求めるプログラムを作成せよ.

입력

標準入力から以下の入力を読み込め.

  • 1 行目には整数 R,C が空白を区切りとして書かれている.R はマスコットを置く場所の行数を,C は マスコットを置く場所の列数を表す.
  • 2 行目には整数 N が書かれている.N は片付けが始まる段階で既に置かれているマスコットの個数 を表す.
  • 続く N 行には,最初から置かれているマスコットの情報が書かれている.これらの行の i 行目には 整数 Ai, Bi が空白を区切りとして書かれている.これはマス (Ai, Bi) に最初からマスコットが置かれ ていることを表す.これらの数字の組は重複しない.

출력

標準出力に,考えられる置き方の個数を 1 000 000 007 で割った余りを出力せよ.

제한

  • 2 ≤ R ≤ 3 000.
  • 2 ≤ C ≤ 3 000.
  • 1 ≤ N ≤ 100 000.

예제 입력 1

2 3
2
1 2
2 2

예제 출력 1

8

初期状態で 6 個のマスは次のようになっている(△は初期状態でマスコットが置いてあるマス).

6 マスのうち (1, 2) と (2, 2) には既にマスコットが置いてある.少し幸せになる回数の最大値は 2 である. 少し幸せになる回数が 2 回となる配置は次の 8 通りである(数字は新しくマスコットを置く順番を表す).

8 通りの例のいずれにおいても 2 番目のマスコットを置いたときにマスコットのあるマスが 2 × 2 の長方 形に,4 番目のマスコットを置いたときにマスコットのあるマスが 2 × 3 の長方形になり,全体で 2 回 JOI ちゃんは少し幸せになる.

예제 입력 2

3 3
2
1 1
3 3

예제 출력 2

5040

どのような順番で配置しても少し幸せになる回数は 1 回である.