import sys

from bisect import bisect_left

from collections import defaultdict

def input(): return sys.stdin.readline().strip()



def main():

    H, W, N = list(map(int, input().split()))

    black = []

    d = defaultdict(list)

    for _ in range(N):

        a, b = list(map(int, input().split()))

        black.append((a - 1, b - 1))

        d[a - 1].append(b - 1)

    for key in d: d[key].sort()



    ans = [0] * 10

    checked = set()

    # (a, b)がテンプレートのどこにいるかで９通り試す

    for i in range(9):

        for a, b in black:

            h, w = a - i // 3, b - i % 3

            if (h, w) in checked: continue

            if h < 0 or w < 0: continue

            if h > H - 3 or w > W - 3: continue

            cnt = 0

            idx1 = bisect_left(d[h], w)

            idx2 = bisect_left(d[h], w + 3)

            cnt += idx2 - idx1

            idx1 = bisect_left(d[h + 1], w)

            idx2 = bisect_left(d[h + 1], w + 3)

            cnt += idx2 - idx1

            idx1 = bisect_left(d[h + 2], w)

            idx2 = bisect_left(d[h + 2], w + 3)

            cnt += idx2 - idx1

            #print("({}, {})=>{}".format(h, w, cnt))

            ans[cnt] += 1

            checked.add((h, w))

    ans[0] = (H - 2) * (W - 2) - sum(ans[1:])

    for a in ans: print(a)









if __name__ == "__main__":

    main()

import sys

def input(): return sys.stdin.readline().strip()



def main():

    """

    https://atcoder.jp/contests/abc045/submissions/14945636

    が高速に動作していたので参考に写経する。



    各黒マスに対して、それを含むテンプレートを左上の座標値で管理する。

    （写経元は右下座標で管理してる）

    このテンプレート及びそこに黒マスが何個入っているかを管理しておけば

    黒マス位置をソートして全体位置を把握していなくてもオンラインで更新が可能。

    """

    H, W, N = list(map(int, input().split()))

    ans = [0] * 10

    templates = {}

    for _ in range(N):

        a, b = list(map(int, input().split()))

        for i in range(9):

            # (h, w)がテンプレートの左上座標

            h, w = (a - 3) + i // 3, (b - 3) + i % 3

            if h < 0 or w < 0: continue

            if h > H - 3 or w > W - 3: continue

            idx = h * W + w

            if idx in templates:

                ans[templates[idx]] -= 1

                templates[idx] += 1

                ans[templates[idx]] += 1

            else:

                templates[idx] = 1

                ans[1] += 1

    ans[0] = (H - 2) * (W - 2) - sum(ans[1:])

    for a in ans: print(a)





if __name__ == "__main__":

    main()

import sys
from bisect import bisect_left
from collections import defaultdict


def input():
    return sys.stdin.readline().strip()


def main():
    H, W, N = list(map(int, input().split()))
    black = []
    d = defaultdict(list)
    for _ in range(N):
        a, b = list(map(int, input().split()))
        black.append((a - 1, b - 1))
        d[a - 1].append(b - 1)
    for key in d:
        d[key].sort()
    ans = [0] * 10
    checked = set()
    # (a, b)がテンプレートのどこにいるかで９通り試す
    for i in range(9):
        for a, b in black:
            h, w = a - i // 3, b - i % 3
            if (h, w) in checked:
                continue
            if h < 0 or w < 0:
                continue
            if h > H - 3 or w > W - 3:
                continue
            cnt = 0
            idx1 = bisect_left(d[h], w)
            idx2 = bisect_left(d[h], w + 3)
            cnt += idx2 - idx1
            idx1 = bisect_left(d[h + 1], w)
            idx2 = bisect_left(d[h + 1], w + 3)
            cnt += idx2 - idx1
            idx1 = bisect_left(d[h + 2], w)
            idx2 = bisect_left(d[h + 2], w + 3)
            cnt += idx2 - idx1
            # print("({}, {})=>{}".format(h, w, cnt))
            ans[cnt] += 1
            checked.add((h, w))
    ans[0] = (H - 2) * (W - 2) - sum(ans[1:])
    for a in ans:
        print(a)


if __name__ == "__main__":
    main()

import sys


def input():
    return sys.stdin.readline().strip()


def main():
    """
    https://atcoder.jp/contests/abc045/submissions/14945636
    が高速に動作していたので参考に写経する。
    各黒マスに対して、それを含むテンプレートを左上の座標値で管理する。
    （写経元は右下座標で管理してる）
    このテンプレート及びそこに黒マスが何個入っているかを管理しておけば
    黒マス位置をソートして全体位置を把握していなくてもオンラインで更新が可能。
    """
    H, W, N = list(map(int, input().split()))
    ans = [0] * 10
    templates = {}
    for _ in range(N):
        a, b = list(map(int, input().split()))
        for i in range(9):
            # (h, w)がテンプレートの左上座標
            h, w = (a - 3) + i // 3, (b - 3) + i % 3
            if h < 0 or w < 0:
                continue
            if h > H - 3 or w > W - 3:
                continue
            idx = h * W + w
            if idx in templates:
                ans[templates[idx]] -= 1
                templates[idx] += 1
                ans[templates[idx]] += 1
            else:
                templates[idx] = 1
                ans[1] += 1
    ans[0] = (H - 2) * (W - 2) - sum(ans[1:])
    for a in ans:
        print(a)


if __name__ == "__main__":
    main()

-from bisect import bisect_left -from collections import defaultdict +    """ +    https://atcoder.jp/contests/abc045/submissions/14945636 +    が高速に動作していたので参考に写経する。 +    各黒マスに対して、それを含むテンプレートを左上の座標値で管理する。 +    （写経元は右下座標で管理してる） +    このテンプレート及びそこに黒マスが何個入っているかを管理しておけば +    黒マス位置をソートして全体位置を把握していなくてもオンラインで更新が可能。 +    """ -    black = [] -    d = defaultdict(list) +    ans = [0] * 10 +    templates = {} -        black.append((a - 1, b - 1)) -        d[a - 1].append(b - 1) -    for key in d: -        d[key].sort() -    ans = [0] * 10 -    checked = set() -    # (a, b)がテンプレートのどこにいるかで９通り試す -    for i in range(9): -        for a, b in black: -            h, w = a - i // 3, b - i % 3 -            if (h, w) in checked: -                continue +        for i in range(9): +            # (h, w)がテンプレートの左上座標 +            h, w = (a - 3) + i // 3, (b - 3) + i % 3 -            cnt = 0 -            idx1 = bisect_left(d[h], w) -            idx2 = bisect_left(d[h], w + 3) -            cnt += idx2 - idx1 -            idx1 = bisect_left(d[h + 1], w) -            idx2 = bisect_left(d[h + 1], w + 3) -            cnt += idx2 - idx1 -            idx1 = bisect_left(d[h + 2], w) -            idx2 = bisect_left(d[h + 2], w + 3) -            cnt += idx2 - idx1 -            # print("({}, {})=>{}".format(h, w, cnt)) -            ans[cnt] += 1 -            checked.add((h, w)) +            idx = h * W + w +            if idx in templates: +                ans[templates[idx]] -= 1 +                templates[idx] += 1 +                ans[templates[idx]] += 1 +            else: +                templates[idx] = 1 +                ans[1] += 1