def solve(H, W, M, PS):
minX = [H] * W
minY = [W] * H
for x, y in PS:
minX[y - 1] = min(minX[y - 1], x - 1)
minY[x - 1] = min(minY[x - 1], y - 1)
ret = 0
# horizontal -> vertical
for x in range(0, minX[0]):
ret += minY[x]
# grouping
from collections import defaultdict
P2 = defaultdict(list)
for i in range(M):
x, y = PS[i]
P2[y - 1].append(x - 1)
bit_init(H + 1)
x0 = minX[0]
for y in range(0, minY[0]):
x1 = minX[y]
if x1 > x0:
ret += x1 - x0
x1 = x0
ret += bit_sum(x1)
for x in P2[y]:
bit_set(x, 1)
return ret