#include <iostream>
#include <string>
#include <algorithm>
#include <vector>
#include <map>
#include <stdio.h>
#include <cstring>

using namespace std;

void  Fill(char, int, int, int, int, char[1000][1001]);
void Save(int);
void Load(int, char[1000][1001]);
void FillFromString(string, char[1000][1001]);
void ClearField(int, char, char[1000][1001]);
void PrintField(int, char[1000][1001]);

void Fill(char color, int y1, int x1, int y2, int x2, char map[1000][1001]) {
	bool nl = false;
	for(int i = y1; i <= y2; ++i, nl = !nl) {		
		if (nl) for(int m = x1 + 1; m <= x2; m+=2) map[i][m] = color;
		else for(int m = x1; m <= x2; m+=2) map[i][m] = color;
	}
}

int countSaves = 0;
std::vector<int> saves(1);
void Save(int paintCount) {
	saves.push_back(paintCount);
}

int countPaint = 0;
std::vector<string> paints(1);
void Load(int save, char map[1000][1001]) {
	for(int i = 1; i <= save; i++)
		FillFromString(paints[i], map);
}

void FillFromString(string message, char map[1000][1001]) {
	char color;
	int x1, y1, x2, y2;
	sscanf(message.c_str(), "PAINT %c %d %d %d %d", &color, &x1, &y1, &x2, &y2);
	Fill(color, x1, y1, x2, y2, map);
}

void ClearField(int N, char clearColor, char map[1000][1001]) {
	for(int i = 0; i < N; ++i) {
		for(int m = 0; m < N; ++m)
			map[i][m] = '1';
	}
}
void PrintField(int N, char map[1000][1001]) {
	for(int i = 0; i < N; ++i) {
		for(int m = 0; m < N; ++m)
			cout << map[i][m] << " ";
		cout << endl;
	}
}

int main() {
	int N, K, M; cin >> N >> K >> M;
	char map[1000][1001];
	ClearField(N, '1', map);

	string input;
	for(int i = 0; i < M + 1; ++i) {
		getline (cin, input);
		char message[256]; strcpy(message, input.c_str());

		if (message[0] == 'P') {
			paints.push_back(message);
			countPaint++;
			FillFromString(message, map);
		}
		else if (message[0] == 'S') Save(countPaint);
		else if (message[0] == 'L') {
			int loadNumber = 0;
			ClearField(N, '1', map);
			sscanf(message, "LOAD %d", &loadNumber);
			Load(loadNumber, map);
		}
	}


	PrintField(N, map);
	
	//system("pause");
	return 0;
}