import std.stdio;
import std.conv, std.array, std.algorithm, std.string;
import std.math, std.random, std.range, std.datetime;
import std.bigint;

class Cell{
	long a;
	long b;
	this(long a, long b){
		this.a = a, this.b = b;
		}
	}


void main(){
	long h, w, n;
	{
		long[] tmp = readln.chomp.split.map!(to!long).array;
		h = tmp[0], w = tmp[1], n = tmp[2];
		}
	
	Cell[] cells;
	foreach(i; 0 .. n){
		long[] tmp = readln.chomp.split.map!(to!long).array;
		cells ~= new Cell(tmp[0], tmp[1]);
		}
	
	int[string] us;
	
	void add(long a, long b){
		if(a <= 1) return;
		if(b <= 1) return;
		if(a >= h) return;
		if(b >= w) return;
		us[a.to!string ~ "/" ~ b.to!string] += 1;
		}
	
	foreach(c; cells){
		add(c.a, c.b);
		add(c.a - 1, c.b);
		add(c.a + 1, c.b);
		add(c.a, c.b - 1);
		add(c.a - 1, c.b - 1);
		add(c.a + 1, c.b - 1);
		add(c.a, c.b + 1);
		add(c.a - 1, c.b + 1);
		add(c.a + 1, c.b + 1);
		}
	
	int[10] count;
	
	foreach(k; us.keys){
		count[us[k]] += 1;
		}
	
	
	BigInt count0 = BigInt(h - 2) * BigInt(w - 2);
	foreach(c; count[1 .. $]) count0 -= c;
	
	count0.writeln;
	foreach(c; count[1 .. $]) c.writeln;
	
	}