/*
#include <stdio.h>
int a[100001];
void swap(int x, int y)
{
int data=a[x];
a[x]=a[y];
a[y]=data;
}
void qs(int s, int e)
{
if(s>=e)
return;
int pivot=s;
int low=s, high=e+1;
do
{
do
{
high--;
}
while(a[pivot]<a[high]);
do
{
low++;
}
while(a[pivot]>a[low]);
if(low<high)
swap(low,high);
}
while(low<high);
swap(pivot,high);
qs(s,high-1);
qs(high+1,e);
}
int main()
{
int n, i;
scanf("%d", &n);
for(i=1; i<=n; i++)
{
scanf("%d", &a[i]);
}
qs(1,n);
for(i=1; i<=n; i++)
{
printf("%d\n", a[i]);
}
}
#include <stdio.h>
int a[100001];
void swap(int x, int y)
{
int data=a[x];
a[x]=a[y];
a[y]=data;
}
void qs(int s, int e)
{
if(s>=e)
return;
int pivot=s;
int low=s, high=e+1;
do
{
do
{
high--;
}
while(a[pivot]<a[high]);
do
{
low++;
}
while(a[pivot]>a[low]);
if(low<high)
swap(low,high);
}
while(low<high);
swap(pivot,high);
qs(s,high-1);
qs(high+1,e);
}
int main()
{
int n, i;
scanf("%d", &n);
for(i=1; i<=n; i++)
{
scanf("%d", &a[i]);
}
qs(1,n);
for(i=1; i<=n; i++)
{
printf("%d ", a[i]);
}
}
int memo[100001]={};
memo[i] i가 입력된 횟수
memo[0] ~ memo[100000]
0을 memo[0]번
... i를 memo[i]출력
*/
/*
#include<stdio.h>
int main()
{
int memo[100000]={}, a, n, max=0, i, j;
scanf("%d", &a);
for(i=0; i<a; i++)
{
scanf("%d", &n);
memo[n]++;
if(n>max)
max=n;
}
for(i=0; i<=max; i++)
{
if(memo[i]>0)
{
for(j=0; j<memo[i]; j++)
printf("%d ", i);
}
}
}
*/
/*
#include<stdio.h>
int a[100][100]= {}, m, n1, a1[100], num;
void dfs(int x, int y)
{
num++;
a[x][y]=-1;
if(x+1<m && a[x+1][y]==0)
dfs(x+1,y);
if(x-1>=0 && a[x-1][y]==0)
dfs(x-1, y);
if(y+1<n1 && a[x][y+1]==0)
dfs(x, y+1);
if(y-1>=0 && a[x][y-1]==0)
dfs(x, y-1);
}
int main()
{ int k, x1, y1, x2, y2, i, j, l;
int temp, n=0;
scanf("%d %d %d", &m, &n1, &k);
for(l=0; l<k; l++)
{
scanf("%d %d %d %d", &x1, &y1, &x2, &y2);
for(j=y1; j<y2; j++)
{
for(i=x1; i<x2; i++)
a[j][i]=1;
}
}
for(i=0; i<m; i++)
{
for(j=0; j<n1; j++)
{
if(a[i][j]==0)
{
num=0;
dfs(i,j);
n++;
a1[n]=num;
}
}
}
printf("%d\n", n);
for(i=1; i<=n; i++)
{
for(j=1; j<=n-i; j++)
{
if (a1[j] > a1[j+1])
{
temp = a1[j];
a1[j] = a1[j+1];
a1[j+1] = temp;
}
}
}
for(i=1; i<=n; i++)
{
printf("%d ", a1[i]);
}
}
*/
#include<stdio.h>
int a[20][20];
void dfs(int x, int y, int n, int c, int w)
{
if(a[x][y]!=c)
{
if(n==5)
{
if(c==1)
{
if(w==1)
printf("1\n%d %d", x-5, y);
if(w==2)
printf("1\n%d %d", x-5, y-5);
if(w==3)
printf("1\n%d %d", x, y-5);
}
else if(c==2)
{
if(w==1)
printf("2\n%d %d", x-5, y);
if(w==2)
printf("2\n%d %d", x-5, y-5);
if(w==3)
printf("2\n%d %d", x, y-5);
}
exit(0);
}
else if(n>5)
{
if(w==1)
{
for(int i=0; i<n; i++)
a[x][y-i]=0;
}
else if(w==2)
{
for(int i=0; i<n; i++)
a[x-i][y-i]=0;
}
else if(w==2)
{
for(int i=0; i<n; i++)
a[x-i][y]=0;
}
}
return;
}
if(w==1)
dfs(x+1, y, n+1, c, 1);
else if(w==2)
dfs(x+1, y+1, n+1, c, 2);
else if(w==3)
dfs(x, y+1, n+1, c, 3);
}
int main()
{
int i, j;
for(i=1; i<=19; i++)
{
for(j=1; j<=19; j++)
scanf("%d", &a[i][j]);
}
for(i=1; i<20; i++)
{
for(j=1; j<20; j++)
{
if(a[j][i]>0)
{
dfs(j+1, i, 1, a[j][i], 1);
dfs(j+1, i+1, 1, a[j][i], 2);
dfs(j, i+1, 1, a[j][i], 3);
}
}
}
printf("0");
}