#include <stdio.h>
int controllaTorre(int n, int S[][n], int w, int y);
int controllaAlfiere(int n, int S[][n], int w, int y);
int controllaRegina(int n, int S[][n], int w, int y);
int main ()

{
int i,j,w,y,n,npezzi,f;
int riga,colonna;
int x;
scanf("%d",&x);
scanf("%d",&n);/*grandezza schacchiera*/
int S[n][n];
for(i=0;i<n;i++){
    for(j=0;j<n;j++){
        S[i][j]=0;}}

/*pezzo da considerare*/
scanf("%d",&npezzi);/*quanti pezzi inserire nella scacchiera*/


switch (x){/*selezione pezzo 1 torre, 2 alfiere, 3 regina*/

case 1:/*torre*/       

        for(f=1;f<=npezzi;f++){/*coordinate pezzi da inserire*/      
            scanf("%d",&riga);
            scanf("%d",&colonna);
            S[riga][colonna]-=1;}            
controllaTorre(n,S,w,y);
for(i=0;i<n;i++){printf("\n");
    for(j=0;j<n;j++){       
printf(" %d",S[i][j]);}}         
break;

case 2:/*alfiere*/
for(f=1;f<=npezzi;f++){/*coordinate pezzi da inserire*/      
            scanf("%d",&riga);
            scanf("%d",&colonna);
            S[riga][colonna]-=1;}            
controllaAlfiere(n,S,w,y);
for(i=0;i<n;i++){printf("\n");
    for(j=0;j<n;j++){       
printf(" %d",S[i][j]);}} 
break;


case 3:/*regina*/ 
for(f=1;f<=npezzi;f++){/*coordinate pezzi da inserire*/      
            scanf("%d",&riga);
            scanf("%d",&colonna);
            S[riga][colonna]-=1;}            
controllaRegina(n,S,w,y);
for(i=0;i<n;i++){printf("\n");
    for(j=0;j<n;j++){       
printf(" %d",S[i][j]);}} 
break;

}

}

int controllaTorre(int n, int S[][n], int w, int y)
{
int i,j,k,z;/*contaotori*/                                                                                                                  

 
for(k=0;k<n;k++){                               /*scorrono 1 ad 1 le caselle*/
    for(z=0;z<n;z++){
i=k;j=z;
while(j<n){/*riga verso destra*/
j++;
if(S[i][j]==-1 || S[k][z]==-1) break;/*se incontri un pezzo -1 o il pezzo stesso è -1*/
if(i>n-1||j>n-1||i<0||j<0){
break;}
S[k][z]+=1;}
}}

for(k=0;k<n;k++){                               /*scorrono 1 ad 1 le caselle*/
    for(z=0;z<n;z++){
i=k;j=z;
while(j>=0){/*riga verso sinistra*/
j--;
if(S[i][j]==-1 || S[k][z]==-1) break;
if(i>n-1||j>n-1||i<0||j<0){
break;}
S[k][z]+=1;}
}}
for(k=0;k<n;k++){                               /*scorrono 1 ad 1 le caselle*/
    for(z=0;z<n;z++){
i=k;j=z;
while(i>=0){/*colonna verso alto*/
i--;
if(S[i][j]==-1 || S[k][z]==-1) break;
if(i>n-1||j>n-1||i<0||j<0){
break;}
S[k][z]+=1;}
}}
for(k=0;k<n;k++){                               /*scorrono 1 ad 1 le caselle*/
    for(z=0;z<n;z++){
i=k;j=z;
while(i<=n-1){/*colonna verso basso*/
i++;
if(S[i][j]==-1 || S[k][z]==-1) break;
if(i>n-1||j>n-1||i<0||j<0){
break;}
S[k][z]+=1;}
}}}


int controllaAlfiere(int n, int S[][n], int w, int y)
{
int i,j,k,z;/*contaotori*/

for(k=0;k<n;k++){                      /*punto k z da prenderein considerazione e modificare con +1 fino a fine scacchiera*/
    for(z=0;z<n;z++){
i=k;
j=z;
while(j<=n-1 && i<=n-1){/*diagonale destra*/
i++;
j++;
if(S[i][j]==-1 || S[k][z]==-1) break;
if(i>n-1||j>n-1||i<0||j<0){
break;}
S[k][z]+=1;}

i=k;
j=z;
while(i>=0 && j>=0){/*diagonale2*/
i--;
j--;
if(S[i][j]==-1 || S[k][z]==-1) break;
if(i>n-1||j>n-1||i<0||j<0){
break;}       
S[k][z]+=1;}

i=k;
j=z;
while(i>=0 && j>=0){/*diagonale3*/
i--;
j++;
if(S[i][j]==-1 || S[k][z]==-1) break;
if(i>n-1||j>n-1||i<0||j<0){
break;}        
S[k][z]+=1;}

i=k;
j=z;
while(i>=0 && j>=0){/*diagonale3*/
i++;
j--;   
if(S[i][j]==-1 || S[k][z]==-1) break;
if(i>n-1||j>n-1||i<0||j<0){
break;}      
S[k][z]+=1;}
}}}



int controllaRegina(int n, int S[][n], int w, int y)
{                       
int i,j,k,z;/*contaotori*/


for(k=0;k<n;k++){
    for(z=0;z<n;z++){
i=k;
j=z;
while(j<=n-1 && i<=n-1){/*diagonale destra*/
i++;
j++;
if(S[i][j]==-1 || S[k][z]==-1) break;
if(i>n-1||j>n-1||i<0||j<0){
break;}
S[k][z]+=1;}

i=k;
j=z;
while(i>=0 && j>=0){/*diaginale2*/
i--;
j--;
if(S[i][j]==-1 || S[k][z]==-1) break;
if(i>n-1||j>n-1||i<0||j<0){
break;}       
S[k][z]+=1;}

i=k;
j=z;
while(i>=0 && j>=0){/*diagonale3*/
i--;
j++;
if(S[i][j]==-1 || S[k][z]==-1) break;
if(i>n-1||j>n-1||i<0||j<0){
break;}        
S[k][z]+=1;}

i=k;
j=z;
while(i>=0 && j>=0){/*diagonale4*/
i++;
j--;   
if(S[i][j]==-1 || S[k][z]==-1) break;
if(i>n-1||j>n-1||i<0||j<0){
break;}      
S[k][z]+=1;}
}}

for(k=0;k<n;k++){                               /*scorrono 1 ad 1 le caselle*/
    for(z=0;z<n;z++){
i=k;j=z;
while(j<=n-1){/*riga verso destra*/
j++;
if(S[i][j]==-1 || S[k][z]==-1) break;
if(i>n-1||j>n-1||i<0||j<0){
break;}
S[k][z]+=1;}
}}

for(k=0;k<n;k++){                               /*scorrono 1 ad 1 le caselle*/
    for(z=0;z<n;z++){
i=k;j=z;
while(j>=0){/*riga verso sinistra*/
j--;
if(S[i][j]==-1 || S[k][z]==-1) break;
if(i>n-1||j>n-1||i<0||j<0){
break;}
S[k][z]+=1;}
}}
for(k=0;k<n;k++){                               /*scorrono 1 ad 1 le caselle*/
    for(z=0;z<n;z++){
i=k;j=z;
while(i>=0){/*colonna verso alto*/
i--;
if(S[i][j]==-1 || S[k][z]==-1) break;
if(i>n-1||j>n-1||i<0||j<0){
break;}
S[k][z]+=1;}
}}
for(k=0;k<n;k++){                               /*scorrono 1 ad 1 le caselle*/
    for(z=0;z<n;z++){
i=k;j=z;
while(i<=n-1){/*colonna verso basso*/
i++;
if(S[i][j]==-1 || S[k][z]==-1) break;
if(i>n-1||j>n-1||i<0||j<0){
break;}
S[k][z]+=1;}
}}




}
