#include<iostream>
using namespace std;

int n, map[10][10], use[10][10];
int ax[12], ay[12], as[12];

int sdx[5] = {0, -1, 0, 1, 0};
int sdy[5] = {0,  1, 1, 1, 2};
int mdx[9] = {0, 1, 2, 0, 1, 2, 0, 1, 2};
int mdy[9] = {0, 0, 0, 1, 1, 1, 2, 2, 2};
int ldx[13] = {0, -1, 0, 1, -2, -1, 0, 1, 2, -1, 0, 1, 0};
int ldy[13] = {0,  1, 1, 1,  2,  2, 2, 2, 2,  3, 3, 3, 4};

bool solve(int c, int x, int y) {
	bool solved=false;
	if(c==n) {
		for(int i=0; i<10; ++i) for(int j=(i==y?x:0); j<10; ++j) {
			if(map[i][j]-use[i][j]>0) return false;
		}
		return true;
	}
	for(int i=y; i<10; ++i) {
		for(int j=(i==y?x:0); j<10; ++j) {
			if(map[i][j]-use[i][j]>0) {
				if(1<j&&j<8&&i<6&&!solved) {
					for(int k=0; k<13; ++k) {
						if(map[i+ldy[k]][j+ldx[k]]-use[i+ldy[k]][j+ldx[k]]<=0) break;
						if(k==12) {
							for(int l=0; l<13; ++l) use[i+ldy[l]][j+ldx[l]]++;
							ax[c] = j; ay[c] = i+2; as[c] = 3;
							solved = solve(c+1, j, i);
							for(int l=0; l<13; ++l) use[i+ldy[l]][j+ldx[l]]--;
						}
					}
				}
				if(j<8&&i<8&&!solved) {
					for(int k=0; k<9; ++k) {
						if(map[i+mdy[k]][j+mdx[k]]-use[i+mdy[k]][j+mdx[k]]<=0) break;
						if(k==8) {
							for(int l=0; l<9; ++l) use[i+mdy[l]][j+mdx[l]]++;
							ax[c] = j+1; ay[c] = i+1; as[c] = 2;
							solved = solve(c+1, j, i);
							for(int l=0; l<9; ++l) use[i+mdy[l]][j+mdx[l]]--;
						}
					}
				}
				if(0<j&&j<9&&i<8&&!solved) {
					for(int k=0; k<5; ++k) {
						if(map[i+sdy[k]][j+sdx[k]]-use[i+sdy[k]][j+sdx[k]]<=0) break;
						if(k==4) {
							for(int l=0; l<5; ++l) use[i+sdy[l]][j+sdx[l]]++;
							ax[c] = j; ay[c] = i+1; as[c] = 1;
							solved = solve(c+1, j, i);
							for(int l=0; l<5; ++l) use[i+sdy[l]][j+sdx[l]]--;
						}
					}
				}
				return solved;
			}
		}
	}
	return false;
}

int main() {
	cin >> n;
	for(int i=0; i<10; ++i) for(int j=0; j<10; ++j) {
		cin >> map[i][j];
		use[i][j] = 0;
	}
	solve(0, 0, 0);
	for(int i=0; i<n; ++i) cout << ax[i] << " " << ay[i] << " " << as[i] << endl;
	return 0;
}