#include <bits/stdc++.h>
#define M 10
using namespace std;
int main() {
    int H, W, N;
    cin >> H >> W >> N;
    pair<int,int> ab[N];
    for (int i = 0; i < N; i++) {
        cin >> ab[i].first >> ab[i].second;
    }
    sort(ab,ab+N);
    vector<long long> answers(M);
    answers[0] = (H-2ll)*(W-2);
    for (int i = 0; i < N; i++) {
        int n = 1;
        if (ab[i].first+2 <= H && ab[i].second+2 <= W) {
            n += binary_search(ab,ab+N,make_pair(ab[i].first,ab[i].second+1));
            n += binary_search(ab,ab+N,make_pair(ab[i].first,ab[i].second+2));
            n += binary_search(ab,ab+N,make_pair(ab[i].first+1,ab[i].second));
            n += binary_search(ab,ab+N,make_pair(ab[i].first+1,ab[i].second+1));
            n += binary_search(ab,ab+N,make_pair(ab[i].first+1,ab[i].second+2));
            n += binary_search(ab,ab+N,make_pair(ab[i].first+2,ab[i].second));
            n += binary_search(ab,ab+N,make_pair(ab[i].first+2,ab[i].second+1));
            n += binary_search(ab,ab+N,make_pair(ab[i].first+2,ab[i].second+2));
            answers[n]++;
        }
        n = 1;
        if (ab[i].first+2 <= H && ab[i].second-1 && ab[i].second+1 <= W) {
            n += binary_search(ab,ab+N,make_pair(ab[i].first,ab[i].second-1));
            n += binary_search(ab,ab+N,make_pair(ab[i].first,ab[i].second+1));
            n += binary_search(ab,ab+N,make_pair(ab[i].first+1,ab[i].second));
            n += binary_search(ab,ab+N,make_pair(ab[i].first+1,ab[i].second-1));
            n += binary_search(ab,ab+N,make_pair(ab[i].first+1,ab[i].second+1));
            n += binary_search(ab,ab+N,make_pair(ab[i].first+2,ab[i].second));
            n += binary_search(ab,ab+N,make_pair(ab[i].first+2,ab[i].second-1));
            n += binary_search(ab,ab+N,make_pair(ab[i].first+2,ab[i].second+1));
            answers[n]++;
        }
        n = 1;
        if (ab[i].first+2 <= H && ab[i].second-2 > 0) {
            n += binary_search(ab,ab+N,make_pair(ab[i].first,ab[i].second-2));
            n += binary_search(ab,ab+N,make_pair(ab[i].first,ab[i].second-1));
            n += binary_search(ab,ab+N,make_pair(ab[i].first+1,ab[i].second));
            n += binary_search(ab,ab+N,make_pair(ab[i].first+1,ab[i].second-1));
            n += binary_search(ab,ab+N,make_pair(ab[i].first+1,ab[i].second-2));
            n += binary_search(ab,ab+N,make_pair(ab[i].first+2,ab[i].second));
            n += binary_search(ab,ab+N,make_pair(ab[i].first+2,ab[i].second-1));
            n += binary_search(ab,ab+N,make_pair(ab[i].first+2,ab[i].second-2));
            answers[n]++;
        }
        n = 1;
        if (ab[i].first+1 <= H && ab[i].first-1 && ab[i].second+2 <= W) {
            n += binary_search(ab,ab+N,make_pair(ab[i].first-1,ab[i].second));
            n += binary_search(ab,ab+N,make_pair(ab[i].first-1,ab[i].second+1));
            n += binary_search(ab,ab+N,make_pair(ab[i].first-1,ab[i].second+2));
            n += binary_search(ab,ab+N,make_pair(ab[i].first,ab[i].second+1));
            n += binary_search(ab,ab+N,make_pair(ab[i].first,ab[i].second+2));
            n += binary_search(ab,ab+N,make_pair(ab[i].first+1,ab[i].second));
            n += binary_search(ab,ab+N,make_pair(ab[i].first+1,ab[i].second+1));
            n += binary_search(ab,ab+N,make_pair(ab[i].first+1,ab[i].second+2));
            answers[n]++;
        }
        n = 1;
        if (ab[i].first+1 <= H && ab[i].first-1 && ab[i].second-1 && ab[i].second+1 <= W) {
            n += binary_search(ab,ab+N,make_pair(ab[i].first-1,ab[i].second-1));
            n += binary_search(ab,ab+N,make_pair(ab[i].first-1,ab[i].second));
            n += binary_search(ab,ab+N,make_pair(ab[i].first-1,ab[i].second+1));
            n += binary_search(ab,ab+N,make_pair(ab[i].first,ab[i].second-1));
            n += binary_search(ab,ab+N,make_pair(ab[i].first,ab[i].second+1));
            n += binary_search(ab,ab+N,make_pair(ab[i].first+1,ab[i].second));
            n += binary_search(ab,ab+N,make_pair(ab[i].first+1,ab[i].second-1));
            n += binary_search(ab,ab+N,make_pair(ab[i].first+1,ab[i].second+1));
            answers[n]++;
        }
        n = 1;
        if (ab[i].first+1 <= H && ab[i].first-1 && ab[i].second-2 > 0) {
            n += binary_search(ab,ab+N,make_pair(ab[i].first-1,ab[i].second-2));
            n += binary_search(ab,ab+N,make_pair(ab[i].first-1,ab[i].second));
            n += binary_search(ab,ab+N,make_pair(ab[i].first-1,ab[i].second-1));
            n += binary_search(ab,ab+N,make_pair(ab[i].first,ab[i].second-2));
            n += binary_search(ab,ab+N,make_pair(ab[i].first,ab[i].second-1));
            n += binary_search(ab,ab+N,make_pair(ab[i].first+1,ab[i].second));
            n += binary_search(ab,ab+N,make_pair(ab[i].first+1,ab[i].second-1));
            n += binary_search(ab,ab+N,make_pair(ab[i].first+1,ab[i].second-2));
            answers[n]++;
        }
        n = 1;
        if (ab[i].first-2 > 0 && ab[i].second+2 <= W) {
            n += binary_search(ab,ab+N,make_pair(ab[i].first-2,ab[i].second));
            n += binary_search(ab,ab+N,make_pair(ab[i].first-2,ab[i].second+1));
            n += binary_search(ab,ab+N,make_pair(ab[i].first-2,ab[i].second+2));
            n += binary_search(ab,ab+N,make_pair(ab[i].first,ab[i].second+2));
            n += binary_search(ab,ab+N,make_pair(ab[i].first,ab[i].second+1));
            n += binary_search(ab,ab+N,make_pair(ab[i].first-1,ab[i].second));
            n += binary_search(ab,ab+N,make_pair(ab[i].first-1,ab[i].second+1));
            n += binary_search(ab,ab+N,make_pair(ab[i].first-1,ab[i].second+2));
            answers[n]++;
        }
        n = 1;
        if (ab[i].first-2 > 0 && ab[i].second+1 <= W && ab[i].second-1) {
            n += binary_search(ab,ab+N,make_pair(ab[i].first-2,ab[i].second));
            n += binary_search(ab,ab+N,make_pair(ab[i].first-2,ab[i].second-1));
            n += binary_search(ab,ab+N,make_pair(ab[i].first-2,ab[i].second+1));
            n += binary_search(ab,ab+N,make_pair(ab[i].first,ab[i].second+1));
            n += binary_search(ab,ab+N,make_pair(ab[i].first,ab[i].second-1));
            n += binary_search(ab,ab+N,make_pair(ab[i].first-1,ab[i].second));
            n += binary_search(ab,ab+N,make_pair(ab[i].first-1,ab[i].second-1));
            n += binary_search(ab,ab+N,make_pair(ab[i].first-1,ab[i].second+1));
            answers[n]++;
        }
        n = 1;
        if (ab[i].first-2 > 0 && ab[i].second-2 > 0) {
            n += binary_search(ab,ab+N,make_pair(ab[i].first-2,ab[i].second));
            n += binary_search(ab,ab+N,make_pair(ab[i].first-2,ab[i].second-1));
            n += binary_search(ab,ab+N,make_pair(ab[i].first-2,ab[i].second-2));
            n += binary_search(ab,ab+N,make_pair(ab[i].first,ab[i].second-2));
            n += binary_search(ab,ab+N,make_pair(ab[i].first,ab[i].second-1));
            n += binary_search(ab,ab+N,make_pair(ab[i].first-1,ab[i].second));
            n += binary_search(ab,ab+N,make_pair(ab[i].first-1,ab[i].second-1));
            n += binary_search(ab,ab+N,make_pair(ab[i].first-1,ab[i].second-2));
            answers[n]++;
        }
    }
    for (int i = 1; i < M; i++) {
        answers[i] /= i;
        answers[0] -= answers[i];
    }
    for (int i = 0; i < M; i++) {
        cout << answers[i] << endl;
    }
}

Measured memory_bytes: 1024