import sys

import bisect

import collections

import fractions

import heapq

import math

from operator import mul

from functools import reduce

from functools import lru_cache





def slove():

    input = sys.stdin.readline

    mod = 10 ** 9 + 7

    h, w, n = list(map(int, input().rstrip('\n').split()))

    d = collections.defaultdict(int)

    for i in range(n):

        a, b = list(map(int, input().rstrip('\n').split()))

        a -= 1

        b -= 1

        for j in range(max(1, a - 1), min(h-1, a + 2)):

            for k in range(max(1, b - 1), min(w-1, b + 2)):

                d[j, k] += 1

    ls = [0] * 10

    for k, v in sorted(list(d.items()), key=lambda x: x[1]):

        ls[v] += 1

    ls[0] = (h - 3 + 1) * (w - 3 + 1) - sum(ls)

    for i in range(10):

        print((ls[i]))





if __name__ == '__main__':

    slove()

import sys

import collections





def solve():

    sys.setrecursionlimit(2000)

    input = sys.stdin.readline

    mod = 10 ** 9 + 7

    h, w, n = list(map(int, input().rstrip('\n').split()))

    d = collections.defaultdict(int)

    for _ in range(n):

        a, b = list(map(int, input().rstrip('\n').split()))

        for i in range(-1, 2):

            for j in range(-1, 2):

                if 1 <= a-1+i < h-1 and 1 <= b-1+j < w-1:

                    d[a-1+i, b-1+j] += 1

    nd = []

    for k, v in list(d.items()):

        nd.append(v)

    nd = collections.Counter(nd)

    print(((h - 2) * (w - 2) - sum(nd.values())))

    for i in range(1, 10):

        print((nd[i]))





if __name__ == '__main__':

    solve()

import sys
import bisect
import collections
import fractions
import heapq
import math
from operator import mul
from functools import reduce
from functools import lru_cache


def slove():
    input = sys.stdin.readline
    mod = 10**9 + 7
    h, w, n = list(map(int, input().rstrip("\n").split()))
    d = collections.defaultdict(int)
    for i in range(n):
        a, b = list(map(int, input().rstrip("\n").split()))
        a -= 1
        b -= 1
        for j in range(max(1, a - 1), min(h - 1, a + 2)):
            for k in range(max(1, b - 1), min(w - 1, b + 2)):
                d[j, k] += 1
    ls = [0] * 10
    for k, v in sorted(list(d.items()), key=lambda x: x[1]):
        ls[v] += 1
    ls[0] = (h - 3 + 1) * (w - 3 + 1) - sum(ls)
    for i in range(10):
        print((ls[i]))


if __name__ == "__main__":
    slove()

import sys
import collections


def solve():
    sys.setrecursionlimit(2000)
    input = sys.stdin.readline
    mod = 10**9 + 7
    h, w, n = list(map(int, input().rstrip("\n").split()))
    d = collections.defaultdict(int)
    for _ in range(n):
        a, b = list(map(int, input().rstrip("\n").split()))
        for i in range(-1, 2):
            for j in range(-1, 2):
                if 1 <= a - 1 + i < h - 1 and 1 <= b - 1 + j < w - 1:
                    d[a - 1 + i, b - 1 + j] += 1
    nd = []
    for k, v in list(d.items()):
        nd.append(v)
    nd = collections.Counter(nd)
    print(((h - 2) * (w - 2) - sum(nd.values())))
    for i in range(1, 10):
        print((nd[i]))


if __name__ == "__main__":
    solve()

-import bisect -import fractions -import heapq -import math -from operator import mul -from functools import reduce -from functools import lru_cache -def slove(): +def solve(): +    sys.setrecursionlimit(2000) -    for i in range(n): +    for _ in range(n): -        a -= 1 -        b -= 1 -        for j in range(max(1, a - 1), min(h - 1, a + 2)): -            for k in range(max(1, b - 1), min(w - 1, b + 2)): -                d[j, k] += 1 -    ls = [0] * 10 -    for k, v in sorted(list(d.items()), key=lambda x: x[1]): -        ls[v] += 1 -    ls[0] = (h - 3 + 1) * (w - 3 + 1) - sum(ls) -    for i in range(10): -        print((ls[i])) +        for i in range(-1, 2): +            for j in range(-1, 2): +                if 1 <= a - 1 + i < h - 1 and 1 <= b - 1 + j < w - 1: +                    d[a - 1 + i, b - 1 + j] += 1 +    nd = [] +    for k, v in list(d.items()): +        nd.append(v) +    nd = collections.Counter(nd) +    print(((h - 2) * (w - 2) - sum(nd.values()))) +    for i in range(1, 10): +        print((nd[i])) -    slove() +    solve()