C,R = map(int,input().split()) #세로, 가로 크기
N = int(input()) #자르는 횟수
Rarr = [0] #세로로 잘리는 위치 저장
Carr = [0] #가로로 잘리는 위치 저장
for i in range(N):
t, p = map(int, input().split()) #t :가로인지 세로인지, p : 좌표
if t == 0:
Rarr.append(p) #세로면 세로리스트에
else:
Carr.append(p) #가로면 가로리스트에
Rarr.append(R) #마지막 정점 추가
Carr.append(C)
Rarr.sort() #정렬
Carr.sort()
maxR = 0
for i in range(1, len(Rarr)):
gap = Rarr[i] - Rarr[i - 1]
if maxR < gap:
maxR = gap
maxC = 0
for i in range(1, len(Carr)):
gap = Carr[i] - Carr[i - 1]
if maxC < gap:
maxC = gap
print(maxR * maxC)