import java.util.*;


public class ith {
   public static void main(String[] a) throws java.io.IOException {
       java.io.BufferedReader in = new java.io.BufferedReader(new java.io.InputStreamReader(System.in));
       String line;
       String[] split;
       int x; int y; int n;
       int x2; int y2;
int x3; int y3;
//       java.util.HashSet<int[]> no = new java.util.HashSet();
       java.util.HashMap<Integer, java.util.HashSet<Integer>> ne;
java.util.HashSet<Integer> t;


	while(true){
            ne = new java.util.HashMap();
       line = in.readLine();
        if(line.equals("0 0 0")) break;
	split = line.split(" ");
	x = Integer.valueOf(split[0]);
	y = Integer.valueOf(split[1]);
	n = Integer.valueOf(split[2]);
        

       for(int i = 0; i < n; i++) {
           	line = in.readLine();
           	split = line.split(" ");
		x2 = Integer.valueOf(split[0]) - 1;
		y2 = Integer.valueOf(split[1]) - 1;

			if ((t = ne.get(x2)) != null) {
				t.add(y2);
			} else {
				t = new HashSet();
				t.add(y2);
				ne.put(x2, t);
			}

		for (int j = 0; j+x2+1 < x; j++) {
                        x3 = j+x2+1;
                        y3 = y2;
			if ((t = ne.get(x3)) != null) {
				t.add(y3);
			} else {
				t = new HashSet();
				t.add(y3);
				ne.put(x3, t);
			}
		}
		for (int j = 0; (j+x2+1 < x) && (j+y2+1 < y); j++) {
                        x3 = j+x2+1;
                        y3 = j+y2+1;
			if ((t = ne.get(x3)) != null) {
				t.add(y3);
			} else {
				t = new HashSet();
				t.add(y3);
				ne.put(x3, t);
			}
		}
		for (int j = 0; j+y2+1 < y; j++) {
                        x3 = x2;
                        y3 = j+y2+1;
			if ((t = ne.get(x3)) != null) {
				t.add(y3);
			} else {
				t = new HashSet();
				t.add(y3);
				ne.put(x3, t);
			}
		}
		for (int j = 0; (x2-1-j >= 0) && (y2+1+j < y); j++) {
                        x3 = x2-1-j;
                        y3 = y2+1+j;
			if ((t = ne.get(x3)) != null) {
				t.add(y3);
			} else {
				t = new HashSet();
				t.add(y3);
				ne.put(x3, t);
			}
		}
		for (int j = 0; x2-1-j >= 0; j++) {
                        x3 = x2-1-j;
                        y3 = y2;
			if ((t = ne.get(x3)) != null) {
				t.add(y3);
			} else {
				t = new HashSet();
				t.add(y3);
				ne.put(x3, t);
			}
		}
		for (int j = 0; (x2-1-j >= 0) && (y2-1-j >= 0); j++) {
                        x3 = x2-1-j;
                        y3 = y2-1-j;
			if ((t = ne.get(x3)) != null) {
				t.add(y3);
			} else {
				t = new HashSet();
				t.add(y3);
				ne.put(x3, t);
			}
		}
		for (int j = 0; y2-1-j >=0; j++) {
                        x3 = x2;
                        y3 = y2-1-j;
			if ((t = ne.get(x3)) != null) {
				t.add(y3);
			} else {
				t = new HashSet();
				t.add(y3);
				ne.put(x3, t);
			}
		}
		for (int j = 0; (x2+1+j < x) && (y2-1-j >=0); j++) {
                        x3 = x2+1+j;
                        y3 = y2-1-j;
			if ((t = ne.get(x3)) != null) {
				t.add(y3);
			} else {
				t = new HashSet();
				t.add(y3);
				ne.put(x3, t);
			}
		}
       }

int c = 0;
for(Integer i : ne.keySet()){
    c += ne.get(i).size();
}
System.out.println(((x*y)-c));

}

   }
}