import java.io.IOException;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.Arrays;



public class ith {
    public static void pbo(boolean[][] bo, int k, int l) {
        for (int i = 0; i < k; i++) {
            for (int j = 0; j < l; j++) {
                if (bo[i][j]) System.out.print("X");
                else System.out.print("_");
            }
             System.out.println();
        }
    }
    public static void main(String[] ars) throws IOException {
        BufferedReader r = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter w = new BufferedWriter(new PrintWriter(System.out));
        String line;
        String[] parse;
        int s = 20001;
        boolean[][] bo = new boolean[s][s];
        boolean[] hbo = new boolean[s];
        boolean[] vbo = new boolean[s];
        boolean[] bo1 = new boolean[2 * s - 1];
        boolean[] bo2 = new boolean[2 * s - 1];
        int k, l, c;
        int x, y;
        while (true) {
            line = r.readLine();
            parse = line.split(" ");
            k = Integer.parseInt(parse[0]);
            l = Integer.parseInt(parse[1]);
            c = Integer.parseInt(parse[2]);
            if (k == 0 && l == 0 && c == 0) break;
            for (int i = 0; i < k; i++) {
                java.util.Arrays.fill(bo[i], 0, l, false);
            }
            Arrays.fill(hbo, 0, l, false);
            Arrays.fill(vbo, 0, k, false);
            Arrays.fill(bo1, 0, k + l - 1, false);
            Arrays.fill(bo2, 0, k + l - 1, false);
            for (int i = 0; i < c; i++) {
                line = r.readLine();
                parse = line.split(" ");
                x = Integer.parseInt(parse[0]);
                y = Integer.parseInt(parse[1]);
                x--;
                y--;
                if (!vbo[x]) {//sloupec (|)
                    vbo[x] = true;
                    for (int j = 0; j < l; j++) bo[x][j] = true;
                }
                if (!hbo[y]) {//radka (--)
                    hbo[y] = true;
                    for (int j = 0; j < k; j++) bo[j][y] = true;
                }
                if (!bo1[x + y]) {//diagonala (/)
                    bo1[x + y] = true;
                    if (y > x) {
                        int j = l;
                        for (int ii = x - (l - y - 1); ii < k; ii++) {
                            bo[ii][j] = true;
                            j--;
                        }
                    } else {
                        int ii = 0;
                        for (int j = x + y; j >= 0; j--) {
                            bo[ii][j] = true;
                            ii++;
                        }
                    }
                    
                }
                if (!bo2[x + y]) {//diagonala (\)
                    bo2[x + y] = true;
                    if (x > y) {
                        int j = 0;
                        for (int ii = x - y; ii < k; ii++) {
                            bo[ii][j] = true;
                            j++;
                        }
                    } else {
                        int ii = 0;
                        for (int j = y - x; j < l; j++) {
                            bo[ii][j] = true;
                            ii++;
                        }
                    }
                }
            }
            pbo(bo, k , l);
            int sum = 0;
            for (int i = 0; i < k; i++) {
                if (!vbo[i]) {
                    for (int j = 0; j < l; j++) {
                        if (!bo[i][j]) sum++;
                    }
                }
            }
            System.out.println(sum);
        }
        //r.readLine();
        //w.write("a");
        //w.flush();
    }
}
