#D3117. Simple APSP Problem

    ID: 2592 Type: Default 3000ms 268MiB

Simple APSP Problem

Simple APSP Problem

You are given an H \times W grid. The square at the top-left corner will be represented by (0, 0), and the square at the bottom-right corner will be represented by (H-1, W-1).

Of those squares, N squares (x_1, y_1), (x_2, y_2), ..., (x_N, y_N) are painted black, and the other squares are painted white.

Let the shortest distance between white squares A and B be the minimum number of moves required to reach B from A visiting only white squares, where one can travel to an adjacent square sharing a side (up, down, left or right) in one move.

Since there are H × W - N white squares in total, there are _{(H×W-N)}C_2 ways to choose two of the white squares.

For each of these _{(H×W-N)}C_2 ways, find the shortest distance between the chosen squares, then find the sum of all those distances, modulo 1 000 000 007=10^9+7.

Constraints

  • 1 \leq H, W \leq 10^6
  • 1 \leq N \leq 30
  • 0 \leq x_i \leq H-1
  • 0 \leq y_i \leq W-1
  • If i \neq j, then either x_i \neq x_j or y_i \neq y_j.
  • There is at least one white square.
  • For every pair of white squares A and B, it is possible to reach B from A visiting only white squares.

Input

Input is given from Standard Input in the following format:

H W N x_1 y_1 x_2 y_2 : x_N y_N

Output

Print the sum of the shortest distances, modulo 10^9+7.

Examples

Input

2 3 1 1 1

Output

20

Input

2 3 1 1 2

Output

16

Input

3 3 1 1 1

Output

64

Input

4 4 4 0 1 1 1 2 1 2 2

Output

268

Input

1000000 1000000 1 0 0

Output

333211937

inputFormat

Input

Input is given from Standard Input in the following format:

H W N x_1 y_1 x_2 y_2 : x_N y_N

outputFormat

Output

Print the sum of the shortest distances, modulo 10^9+7.

Examples

Input

2 3 1 1 1

Output

20

Input

2 3 1 1 2

Output

16

Input

3 3 1 1 1

Output

64

Input

4 4 4 0 1 1 1 2 1 2 2

Output

268

Input

1000000 1000000 1 0 0

Output

333211937

样例

2 3
1
1 2
16