/*
#include <stdio.h>
int main()
{
int arr[100][100]={};
int n, m, i=0, j=0, a, b=0, k=1;
scanf("%d %d", &n, &m);
for(a=0;a<n*m;a++)
{
arr[i][j]=k++;
if(b%4==0)
{
if(arr[i][j]==m||arr[i][j+1]!=0)
{
b++;
i++;
}
else
{
j++;
}
}
else if(b%4==1)
{
if(arr[i][j]==n+m-1||arr[i+1][j]!=0)
{
b++;
j--;
}
else
{
i++;
}
}
else if(b%4==2)
{
if(arr[i][j]==n+2*m-2||arr[i][j-1]!=0)
{
b++;
i--;
}
else
{
j--;
}
}
else
{
if(arr[i][j]==2*(n+m)-4||arr[i-1][j]!=0)
{
b++;
j++;
}
else
{
i--;
}
}
}
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
printf("%d ", arr[i][j]);
}
printf("\n");
}
return 0;
}
*/
/*include <stdio.h>
int main()
{
int arr[100][100]={};
int n, m, i, j, a, b=0, k=1;
scanf("%d %d", &n, &m);
i=0;
j=m-1;
for(a=0;a<n*m;a++)
{
arr[i][j]=k++;
if(b%4==3)
{
if(arr[i][j]==2*(n+m)-4||arr[i][j+1]!=0)
{
b++;
i++;
}
else
{
j++;
}
}
else if(b%4==0)
{
if(arr[i][j]==n||arr[i+1][j]!=0)
{
b++;
j--;
}
else
{
i++;
}
}
else if(b%4==1)
{
if(arr[i][j]==n+m-1||arr[i][j-1]!=0)
{
b++;
i--;
}
else
{
j--;
}
}
else
{
if(arr[i][j]==2*n+m-2||arr[i-1][j]!=0)
{
b++;
j++;
}
else
{
i--;
}
}
}
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
printf("%d ", arr[i][j]);
}
printf("\n");
}
return 0;
}
*/
#include <stdio.h>
int main()
{
int arr[10][10]={};
int n, i, j, k, x, y, z;
//1.입력받기
for(i=0;i<10;i++)
{
for(j=0;j<10;j++)
{
scanf("%d", &arr[i][j]);
}
}
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d %d",&x,&y);
}
//2. 물풍선터트리기
for(i=0;i<10;i++)
{
for(j=0;j<10;j++)
{
if(arr[i][j]>0)
{
for(k=1;k<=arr[i][j];k++) //오른쪽으로 물풍선터지기
{
//범위를 벗어나는경우, -1을만나는경우 break;
if(j+k>=10||arr[i][j+k]==-1) break;
if(arr[i][j+k]==0) arr[i][j+k]=-2;
}
for(k=1;k<=arr[i][j];k++)
{
if(j-k<0||arr[i][j-k]==-1) break;
if(arr[i][j-k]==0) arr[i][j-k]=-2;
}
for(k=1;k<=arr[i][j];k++)
{
if(i+k>=10||arr[i+k][j]==-1) break;
if(arr[i+k][j]==0) arr[i+k][j]=-2;
}
for(k=1;k<=arr[i][j];k++)
{
if(i-k<0||arr[i-k][j]==-1) break;
if(arr[i-k][j]==0) arr[i-k][j]=-2;
}
arr[i][j]=-2;
}
}
}
//3.print
for(i=0;i<10;i++)
{
for(j=0;j<10;j++)
{
printf("%d ", arr[i][j]);
}
printf("\n");
}
return 0;
}