#D3117. Simple APSP Problem
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