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]);
		}
	
	cells.sort!("a.a < b.a")();
	long aoffset;
	int amax = 0;
	if(cells.length && cells[0].a > 3) aoffset = cells[0].a - 3;
	for(int i = 0; i < cells.length; i ++){
		if(i > 0 && cells[i - 1].a + 3 < cells[i].a - aoffset){
			aoffset += cells[i].a - aoffset - (cells[i - 1].a + 3);
			}
		cells[i].a -= aoffset;
		}
	if(cells.length) amax = cast(int) cells[$ - 1].a + 3;
	if(amax > h - aoffset) amax = cast(int) (h - aoffset);
	
	cells.sort!("a.b < b.b")();
	long boffset = 0;
	int bmax = 0;
	for(int i = 0; i < cells.length; i ++){
		if(i > 0 && cells[i - 1].b + 3 < cells[i].b - boffset){
			boffset += cells[i].b - boffset - (cells[i - 1].b + 3);
			}
		cells[i].b -= boffset;
		}
	if(cells.length) bmax = cast(int) cells[$ - 1].b + 3;
	if(bmax > w - boffset) bmax = cast(int) (w - boffset);
	
	cells.sort!("(a.a == b.a)? (a.b < b.b): (a.a < b.a)")();
	
	bool[][] xx;
	foreach(a; 0 .. amax) xx ~= [0];
	foreach(a; 0 .. amax) foreach(b; 0 .. bmax) xx[cast(int) a] ~= 0;
	
	for(int i = 0; i < cells.length; i ++){
		xx[cast(int) cells[i].a - 1][cast(int) cells[i].b - 1] = 1;
		}
	
	debug foreach(x; xx) x.map!(a => a ? "#": "-").join("").writeln; 
	
	
	int[10] count;
	
	for(int a = 0; a < amax - 2; a ++){
		for(int b = 0; b < bmax - 2; b ++){
			int tmp;
			if(xx[a][b]) tmp += 1;
			if(xx[a][b + 1]) tmp += 1;
			if(xx[a][b + 2]) tmp += 1;
			if(xx[a + 1][b]) tmp += 1;
			if(xx[a + 1][b + 1]) tmp += 1;
			if(xx[a + 1][b + 2]) tmp += 1;
			if(xx[a + 2][b]) tmp += 1;
			if(xx[a + 2][b + 1]) tmp += 1;
			if(xx[a + 2][b + 2]) tmp += 1;
			count[tmp] += 1;
			}
		}
	
	BigInt count0 = BigInt(h - 2) * BigInt(w - 2);
	foreach(c; count[1 .. $]) count0 -= c;
	
	count0.writeln;
	foreach(c; count[1 .. $]) c.writeln;
	
	}