#include <iostream>
#include <cstdlib>
using namespace std;
int n;
int **matrix;
void FlipClockwise(int centerX, int centerY, int radius);
void FlipCounterclockwise(int centerX, int centerY, int radius);
void loadMatrix();
void printMatrix();
int main(int argc, const char * argv[]) {
int m;
matrix = (int **)calloc(n, sizeof(int *));
scanf("%d %d", &n, &m);
for (int i = 0; i < n; i++) {
matrix[i] = (int *)calloc(n, sizeof(int));
}
loadMatrix();
for (int i = 0; i < m; i++) {
int x, y, r, z;
cin >> x >> y >> r >> z;
if (z == 0) {
FlipClockwise(x-1, y-1, r);
} else {
FlipCounterclockwise(x-1, y-1, r);
}
}
printMatrix();
return 0;
}
void swapMatrixElement(int origX, int origY, int destX, int destY) {
int tmp = matrix[origX][origY];
matrix[origX][origY] = matrix[destX][destY];
matrix[destX][destY] = tmp;
}
void FlipClockwise(int centerX, int centerY, int radius) {
int offSetX = (centerX-radius), offSetY = (centerY-radius);
for (int i = 0; i <= radius*2;i++) {
for (int j = 0;j < radius;j++) {
swapMatrixElement(i+offSetX, j+offSetY, i+offSetX, centerY+radius - j);
}
}
for (int i = 0; i <= radius*2;i++) {
for (int j = i + 1;j <= radius*2;j++) {
swapMatrixElement(i+offSetX, j+offSetY, j+offSetX, i+offSetY);
}
}
}
void FlipCounterclockwise(int centerX, int centerY, int radius) {
int offSetX = (centerX-radius), offSetY = (centerY-radius);
for (int i = 0; i <= radius*2;i++) {
for (int j = i + 1;j <= radius*2;j++) {
swapMatrixElement(i+offSetX, j+offSetY, j+offSetX, i+offSetY);
}
}
for (int i = 0; i <= radius*2;i++) {
for (int j = 0;j < radius;j++) {
swapMatrixElement(i+offSetX, j+offSetY, i+offSetX, centerY+radius - j);
}
}
}
void loadMatrix() {
int sam = 1;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
matrix[i][j] = sam;
sam++;
}
}
}
void printMatrix(){
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
printf("%d", matrix[i][j]);
if (j != n - 1) {
printf(" ");
}
}
printf("\n");
}
}