#include<iostream>
using namespace std;
int arr[510][510];
int tmp[510][510];
void raotate_c(int x,int y,int r){
int n=x+r,m=y+r;
for(int i=x-r;i<=x+r;i++){
for(int j=y-r;j<=y+r;j++){
tmp[j][n-i-1]=arr[i][j];
}
}
for(int i=x-r;i<=x+r;i++){
for(int j=y-r;j<=y+r;j++){
arr[i][j]=tmp[i][j];
}
}
}
void raotate_r(int x,int y,int r){
int n=x+r,m=y+r;
for(int i=x-r;i<=x+r;i++){
for(int j=y-r;j<=y+r;j++){
tmp[m-j-1][i]=arr[i][j];
}
}
for(int i=x-r;i<=x+r;i++){
for(int j=y-r;j<=y+r;j++){
arr[i][j]=tmp[i][j];
}
}
}
int main(){
int n,m,cnt=1;
cin>>n>>m;
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
arr[i][j]=cnt;
cnt++;
}
}
for(int i=0;i<m;i++){
int x,y,r,z;
cin>>x>>y>>r>>z;
if(z==0){
raotate_c(x,y,r);
}
else{
raotate_r(x,y,r);
}
}
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
cout<<arr[i][j]<<" ";
}
cout<<endl;
}
return 0;
}