#include <cstdio>
#include <cstring>

int n;
int fie[11][11];
int dx[13]={0,1,0,-1,0,-1,1,-1,1,2,0,-2,0};
int dy[13]={0,0,1,0,-1,-1,-1,1,1,0,-2,0,2};
int res[15],resx[15],resy[15];
int now[15],nowx[15],nowy[15];
int cnt;

void dfs(int x,int y,int v){
	if(y==9 || v==n){
		if(cnt==0){
			for(int i=0;i<n;i++){
				res[i]=now[i];
				resx[i]=nowx[i];
				resy[i]=nowy[i];
			}
		}
		return;
	}
	if(fie[x][y]>=1){
		if(y>=2 && fie[x][y-2]>=1){
			for(int i=0;i<13;i++){
				int nx=x+dx[i],ny=y+dy[i];
				if(nx>=0 && nx<10 && ny>=0 && ny<10){
					if(fie[nx][ny]==0)return;
				}else return;
			}
			for(int i=0;i<13;i++){
				cnt--;
				fie[x+dx[i]][y+dy[i]]--;
			}
			now[v]=3;
			nowx[v]=x;
			nowy[v]=y;
			dfs(x,y,v+1);
			for(int i=0;i<13;i++){
				cnt++;
				fie[x+dx[i]][y+dy[i]]++;	
			}
		}else{
			int i;
			for(i=0;i<9;i++){
				int nx=x+dx[i],ny=y+dy[i];
				if(nx>=0 && nx<10 && ny>=0 && ny<10){
					if(fie[nx][ny]==0)break;
				}else break;
			}
			if(i==9){
				for(int j=0;j<9;j++){
					cnt--;
					fie[x+dx[j]][y+dy[j]]--;
				}
				now[v]=2;
				nowx[v]=x;
				nowy[v]=y;
				dfs(x,y,v+1);
				for(int j=0;j<9;j++){
					cnt++;
					fie[x+dx[j]][y+dy[j]]++;	
				}
			}
			for(i=0;i<5;i++){
				int nx=x+dx[i],ny=y+dy[i];
				if(nx>=0 && nx<10 && ny>=0 && ny<10){
					if(fie[nx][ny]==0)break;
				}else break;
			}
			if(i==5){
				for(int j=0;j<5;j++){
					cnt--;
					fie[x+dx[j]][y+dy[j]]--;
				}
				now[v]=1;
				nowx[v]=x;
				nowy[v]=y;
				dfs(x,y,v+1);
				for(int j=0;j<5;j++){
					cnt++;
					fie[x+dx[j]][y+dy[j]]++;	
				}
			}
		}
	}
	if(x==8)dfs(0,y+1,v);
	else dfs(x+1,y,v);
}

int main(void){
	scanf("%d",&n);
	for(int i=0;i<10;i++){
		for(int j=0;j<10;j++){
			scanf("%d",&fie[j][i]);
			cnt+=fie[j][i];
		}
	}
	dfs(1,1,0);
	for(int i=0;i<n;i++){
		printf("%d %d %d\n",resx[i],resy[i],res[i]);
	}
	return 0;
}