#include <algorithm>
#include <stdio.h>

using namespace std;

int n, m, k;
int wall[512][512], colt[512][512];
bool a[512][512][3][3];

inline void doit (int x, int y) {
    din[x][y] ^= 1, t[x][y] -= 1;
}

int main (void) {
    assert (freopen (FIN, "r", stdin));
    assert (freopen (FOU, "w", stdout);

    assert (scanf ("%d %d %d", &N, &M, &K) == 3);
    for (int i = 1; i <= N; ++i)
        for (int j = 1; j <= M; ++j)
            assert (scanf ("%d", t[i] + j) == 1);
    for (int i = 1; i <= K; ++i)
        for (int j = 0, x, y; j < 2; ++j) {
            scanf ("%d %d", &x, &y);
            din[x][y] ^= 1;
        }
    for (int i = 1; i <= N + 1; ++i)
        for (int j = 1; j <= M + 1; ++j) {
            if (j <= M && t[i - 1][j]) {
                doit (i - 1, j - 1), doit (i - 1, j);
                map[i - 1][j - 1][1][0] = map[i - 1][j - 1][1][2] = 1;
            }
            if (din[i - 1][j - 1]) {
                doit (i - 1, j - 1

	for (int i = 1; i <= n + 1; i++)
		for (int j = 1; j <= m + 1; j++)
		{
			if (j <= m && wall[i - 1][j])
			{
				colt[i - 1][j - 1] ^= 1;
				colt[i - 1][j] ^= 1;

				a[i - 1][j - 1][1][2] = 1;
				a[i - 1][j][1][0] = 1;

				wall[i - 1][j]--;
				wall[i][j]--;
			}
			if (colt[i - 1][j - 1])
			{
				colt[i - 1][j - 1] ^= 1;
				colt[i][j - 1] ^= 1;

				a[i - 1][j - 1][2][1] = 1;
				a[i][j - 1][0][1] = 1;

				wall[i][j - 1]--;
				wall[i][j]--;
			}
		}

	for (int i = 1; i <= n; i++)
		for (int j = 1; j <= m; j++)
			a[i][j][1][1] = a[i][j][0][1] | a[i][j][2][1] | a[i][j][1][0] | a[i][j][1][2];

	for (int i = 1; i <= n; i++)
		for (int i1 = 0; i1 < 3; i1++)
		{
			for (int j = 1; j <= m; j++)
				for (int j1 = 0; j1 < 3; j1++)
					printf("%d", a[i][j][i1][j1]);
			printf("\n");
		}

	fclose(stdin);
	fclose(stdout);
	return 0;
}
