#include <stdio.h>

void Oboji(int mat[10][10], int x, int y, int m, int n, int pocetnaBoja, int zamenskaBoja)
{
	if(x >= 0 && x<m && y >= 0 && y<n )
	{
		if(pocetnaBoja == zamenskaBoja)
			return;
		else if(mat[x][y] != pocetnaBoja)
			return;
		else
			mat[x][y] = zamenskaBoja;
		Oboji(mat, x-1, y, m, n, pocetnaBoja, zamenskaBoja);
		Oboji(mat, x+1, y, m, n, pocetnaBoja, zamenskaBoja);
		Oboji(mat, x, y-1, m, n, pocetnaBoja, zamenskaBoja);
		Oboji(mat, x, y+1, m, n, pocetnaBoja, zamenskaBoja);
	}
	else
		return;
}

void main()
{
    int m, n,k, tmp1, tmp2;
    scanf("%d%d", &m, &n);
	int mat[10][10];
	int i, j, boja = 2;
	scanf("%d",&k);

	for(i = 0; i<m; i++)
	{
		for(j = 0; j<n; j++)
		{
			mat[i][j] = 0;
		}
	}

	for(i = 0; i<k; i++)
    {
        scanf("%d%d", &tmp1, &tmp2);
        mat[tmp1-1][tmp2-1] = 1;
    }



	for(i = 0; i<m; i++)
	{
		for(j = 0; j<n; j++)
		{
			if(mat[i][j] == 0)
			{
				Oboji(mat, i,j,m,n,0,boja);
				boja++;
			}
		}
	}

	boja-=2;
	printf("%d",boja);

}