#include<iostream>
using namespace std;
int arr[505][505];
int temp[505][505];
int n, m;
void show()
{
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= n; j++)
{
if(j!=n)
{
printf("%d ", arr[i][j]);
}
else
{
printf("%d", arr[i][j]);
}
}
printf("\n");
}
}
void tempToarr()//把temp的值赋给arr
{
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= n; j++)
{
arr[i][j] = temp[i][j];
}
}
}
void change0(int x, int y, int r)//顺时针
{
for (int i = x - r; i <= x + r; i++)
{
for (int j = y - r; j <= y + r; j++)
{
temp[i][j] = arr[j][i];
}
}
tempToarr();
int ex = 0;
for (int i = y - r; i <= y + r; i++)
{
for (int j = x - r; j <= x + r; j++)
{
temp[j][i] = arr[j][y + r - ex];
}
ex++;
}
tempToarr();
}
void change1(int x, int y, int r)//逆时针
{
change0(x, y, r);
change0(x, y, r);
change0(x, y, r);
}
int main()
{
scanf("%d %d", &n, &m);
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= n; j++)
{
arr[i][j] = j + (i - 1)*n;
temp[i][j] = j + (i - 1)*n;
}
}
for (int i = 1; i <= m; i++)
{
int x, y, r, z;
cin >> x >> y >> r >> z;
if (z == 0)
{
change0(x, y, r);
}
else if (z == 1)
{
change1(x, y, r);
}
}
show();
return 0;
}