program ith;

var pole : array [0..20000,0..20000] of boolean;
var i, x, y, n, xk, yk : longint;

var j, k, pocet : longint;

function min(a,b : longint) : longint;
begin

	if a >= b then
		min := b
	else
		min := a;

end;

begin

while true do
begin

	readln(x, y, n);
	
	for i:=0 to x-1 do
	begin
		for j:=0 to y-1 do
		begin
			pole[i][j] := false;
		end;
	end;

	if ((x = 0) and (y = 0) and (n = 0)) then
		break;
	
	for i:=0 to n-1 do
	begin
	
		readln(xk, yk);
		dec(xk);
		dec(yk);
		
		if false then
		begin
		
		end else
		begin
		
			for j:=0 to x-1 do
				pole[j][yk] := true;
			
			for j:=0 to y-1 do
				pole[xk][j] := true;
				
			for j:=1 to min(xk, yk) do
				pole[xk-j][yk-j] := true;
				
			for j:=1 to min(x-xk, yk) do
				pole[xk+j][yk-j] := true;
				
			for j:=1 to min(x-xk, y-yk) do
				pole[xk+j][yk+j] := true;
				
			for j:=1 to min(xk, y-yk) do
				pole[xk-j][yk+j] := true;
				
			pole[xk][yk] := true;
		
		end;
		
	
	end;
	
	pocet := 0;
	
	for i:=0 to x-1 do
	begin
		for j:=0 to y-1 do
		begin
			if not pole[j][i] then
			begin
				inc(pocet);
				// write(' ');
			end else
			begin
				// write('*');
			end;
		end;
		// writeln;
	end;
		
	writeln(pocet);
	
end;

end.
