#include <stdio.h>

#define pol 16

int main(void)
	{
	char pole[pol][pol],c;
	int n,i,j,m,k1,k2,l1,l2,ub = 0,ran = 0,d;

	d=pol-3;
	for (i = 3;i < d;i++)
		{
		for (j = 3;j < d;j++)
			pole[i][j] = getchar();
		c = getchar();
		}

	for (i = 0;i < pol;i++)
		{
		pole[i][0] = '.';
		pole[i][1] = '.';
		pole[i][2] = '.';
		pole[i][13] = '.';
		pole[i][14] = '.';
		pole[i][15] = '.';
		}

	for (i = 0;i < pol;i++)
		{
		pole[0][i] = '.';
		pole[1][i] = '.';
		pole[2][i] = '.';
		pole[13][i] = '.';
		pole[14][i] = '.';
		pole[15][i] = '.';
		}

	scanf("%d\n",&n);
	for (m = 1;m <= n; m++)
		{
		scanf("%d %d",&i,&j);
		i += 3;
		j += 3;
		if ((pole[i][j] == '*') || (pole[i][j] == '#'))
			{
			pole[i][j] = '!';
			k1 = k2 = l1 = l2 = 0;
			if ((pole[i - 1][j] == '*') || (pole[i - 1][j] == '#') || (pole[i - 1][j] == '!'))
				k1 = 1;
			if ((pole[i][j - 1] == '*') || (pole[i][j - 1] == '#') || (pole[i][j - 1] == '!'))
				k2 = 1;
			if ((pole[i + 1][j] == '*') || (pole[i + 1][j] == '#') || (pole[i + 1][j] == '!'))
				l1 = 1;
			if ((pole[i][j + 1] == '*') || (pole[i][j + 1] == '#') || (pole[i][j + 1] == '!'))
				l2 = 1;
			if ((k1 == 0) && (k2 == 0) && (l1 == 0) && (l2 == 0))
				++ub;
			else
			   {
				if ((pole[i - 1][j] == '*') || (pole[i][j - 1] == '*') || (pole[i + 1][j] == '*') || (pole[i][j + 1] == '*'))
					{
					++ran;
					if (pole[i - 1][j] == '*')
						{
						pole[i - 1][j] = '#';
						if (pole[i - 2][j] == '*')
							{
							pole[i - 2][j] = '#';
							if (pole[i - 3][j] == '*')
								pole[i - 3][j] = '#';
							}
						}
					if (pole[i + 1][j] == '*')
						{
						pole[i + 1][j] = '#';
						if (pole[i + 2][j] == '*')
							{
							pole[i + 2][j] = '#';
							if (pole[i + 3][j] == '*')
							  	pole[i + 3][j] = '#';
							}
						}
					if (pole[i][j - 1] == '*')
						{
						pole[i][j - 1] = '#';
						if (pole[i][j - 2] == '*')
							{
							pole[i][j - 2] = '#';
							if (pole[i][j - 3] == '*')
								pole[i][j - 3] = '#';
							}
						}
					if (pole[i][j + 1] == '*')
						{
						pole[i][j + 1] = '#';
						if (pole[i][j + 2] == '*')
							{
						    pole[i][j + 2] = '#';
							if (pole[i][j + 3] == '*')
						    	pole[i][j + 3] = '#';
							}
						}
					}
				if ((pole[i - 1][j] == '!') || (pole[i + 1][j] == '!') || (pole[i][j - 1] == '!') || (pole[i][j + 1] == '!'))
					{
					k1 = k2 = l1 = l2 = 0;
					if (pole[i - 1][j] == '!')
						{
						++k1;
						if (pole[i - 2][j] == '!')
							{
							if ((pole[i - 3][j] != '!') && (pole[i - 3][j] != '.'))
								--k1;
							}
						else if (pole[i - 2][j] != '.')
								--k1;
						}
					else if (pole[i - 1][j] == '#')
						k1 -= 4;
					if (pole[i + 1][j] == '!')
						{
						++l1;
						if (pole[i + 2][j] == '!')
							{
							if ((pole[i + 3][j] != '!') && (pole[i + 3][j] != '.'))
								--l1;
							}
						else if (pole[i + 2][j] != '.')
								--l1;
						}
					else if (pole[i + 1][j] == '#')
						l1 -= 4;
					if (pole[i][j - 1] == '!')
						{
						++k2;
						if (pole[i][j - 2] == '!')
							{
							if ((pole[i][j - 3] != '!') && (pole[i][j - 3] != '.'))
								--k2;
							}
						else if (pole[i][j - 2] != '.')
								--k2;
						}
					else if (pole[i][j - 1] == '#')
						k2 -= 4;
					if (pole[i][j + 1] == '!')
						{
						++l2;
						if (pole[i][j + 2] == '!')
							{
							if ((pole[i][j + 3] != '!') && (pole[i][j + 3] != '.'))
								--l2;
							}
						else if (pole[i][j + 2] != '.')
							--l2;
						}
					else if (pole[i][j + 1] == '#')
						l2 -= 4;
					if ((k1 + k2 + l1 + l2) > 0)
						{
						++ub;
						--ran;
						}
					}
				}
			}
	}
	printf ("%d %d\n",ran,ub);

	for (i = 3;i < d;i++)
		{
		for (j = 3;j < d;j++)
			putchar(pole[i][j]);
		printf("\n");
		}

	return 0;
	}
