#include<stdio.h>
int abs(int n){
if(n<0)n=-n;
return n;
}
void ck(int f[][501],int n){
int i,k=1;
for(i=1;i<=n;i++){
int j;
for(j=1;j<=n;j++){
f[i][j]=k++;
}
}
}
void zhuan(int x,int y,int r,int k,int f[][501],int z[][501]){
int i;
for(i=x-r;i<=x+r;i++){
int j;
for(j=y-r;j<=y+r;j++){
z[i][j]=f[i][j];
}
}
if(k==0){
for(i=x-r;i<=x+r;i++){
int j;
for(j=y-r;j<=y+r;j++){
f[i][j]=z[x+r-abs(j-(y-r))][y-r+abs(i-(x-r))];
}
}
}
if(k==1){
for(i=x-r;i<=x+r;i++){
int j;
for(j=y-r;j<=y+r;j++){
f[i][j]=z[x-r+abs(j-(y-r))][y+r-abs(i-(x-r))];
}
}
}
}
int main(){
int n,m;
scanf("%d %d",&n,&m);
int f[501][501],z[501][501],in[500][4];
int i;
for(i=0;i<m;i++){
scanf("%d %d %d %d",&in[i][0],&in[i][1],&in[i][2],&in[i][3]);
}
ck(f,n);
for(i=0;i<n;i++){
int j;
zhuan(in[i][0],in[i][1],in[i][2],in[i][3],f,z);
}
for(i=1;i<=n;i++){
int j;
for(j=1;j<=n;j++){
printf("%d",f[i][j]);
if(j!=n){
printf(" ");
}
}
if(i!=n)
printf("\n");
}
return 0;}