#include<bits/stdc++.h>
using namespace std;
void change(int a[][500], int b[][500], int x, int y, int r , int z) {
if(z == 0){
for(int i = -r ; i<=r; i++ ){
for(int j = -r ; j<=r; j++ ){
b[x+j][x-i]=a[x+i][x+j];
}
}
}
if(z == 1){
for(int i = -r ; i<=r; i++ ){
for(int j = -r ; j<=r; j++ ){
b[x-j][x+i]=a[x+i][x+j];
}
}
}
}
void huanyuan(int a[][500],int b[][500], int n ){
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
if(b[i][j] != 0){
a[i][j]=b[i][j];
}
}
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
b[i][j]=0;
}
}
}
void sz_cout(int arr[][500], int n){
for(int i = 1; i<=n; i++){
for(int j = 1; j<=n; j++){
cout <<arr[i][j]<<" ";
}
cout << endl;
}
}
int main()
{
int n, m;
cin >>n;
cin >>m;
int a[500][500]= {0};
int b[500][500] = {0};
int x, y, r, z;
int num = 1;
for(int i = 1; i<=n; i++){
for(int j = 1; j<=n; j++){
a[i][j] = num;
num++;
}
}
for(int i = 1; i<=m; i++){
cin >> x>> y>> r>> z;
change(a, b, y, x, r, z);
huanyuan(a, b, n);
}
sz_cout(a, n);
return 0;
}