//P4924 [1007] 魔法少女小Scarlet
#include<iostream>
using namespace std;
int main()
{
int n, m, x, y, r, z;
cin >> n >> m;
int fz[n+1][n+1], fz2[n+1][n+1];
for(int i=1; i<=n; i++)
{
for(int j=1; j<=n; j++)
{
fz[i][j] = (i-1)*n+j;
fz2[i][j] = (i-1)*n+j;
}
}
for(int i=1; i<=m; i++)
{
cin >> x >> y >> r >> z;
if(z == 0)
{
for(int j=1; j<=2*r+1; j++)
{
for(int k=1; k<=2*r+1; k++)
{
fz2[k+y-1-r][r+1-j+x] = fz[j+x-1-r][k+y-1-r];
}
}
}
if(z == 1)
{
for(int j=1; j<=2*r+1; j++)
{
for(int k=1; k<=2*r+1; k++)
{
fz2[r+1-k+y][j+x-1-r] = fz[j+x-1-r][k+y-1-r];
}
}
}
for(int j=1; j<=n; j++)
{
for(int k=1; k<=n; k++)
{
fz[j][k] = fz2[j][k];
}
}
}
for(int i=1; i<=n; i++)
{
for(int j=1; j<=n; j++)
{
cout << fz[i][j] << " ";
}
cout << endl;
}
}
//顺
//原
//逆
//3*3
//13,23,33,12,22,32,11,21,31,(y ,4-x)
//11,12,13,21,22,23,31,32,33,(x ,y )
//31,21,11,32,22,12,33,23,13,(4-y,x )
//5*5
//15,25,35,45,55,14,24,34,44,54,13,23,33,43,53,12,22,32,42,52,11,21,31,41,51,(y ,6-x)
//11,12,13,14,15,21,22,23,24,25,31,32,33,34,35,41,42,43,44,45,51,52,53,54,55,(x ,y )
//51,41,31,21,11,52,42,32,22,12,53,43,33,23,13,54,44,34,24,14,55,45,35,25,15,(6-y,x )
//n*n
//(1,n),(2, n),(3 ,n)......(n-2,1 ),(n-1,1 ),(n,1),(y ,n+1-x)
//(1,1),(1, 2),(1 ,3)......(n ,n-2),(n ,n-1),(n,n),(x ,y )
//(n,1),(n-1,1),(n-2,1)......(3 ,n ),(2 ,n ),(1,n),(n+1-y,x ) 1
//11,12,13,14,15
//21,22,23,24,25
//31,32,33,34,35
//41,42,43,44,45
//51,52,53,54,55