#include <iostream>
using namespace std;
int main ()
{
int i, j, k, l;//用与循环的变量
int count; //棋盘的个数
int map[22][22];//棋盘
int same; //连续相同的个数
int winner = 0; //获胜者
int row;
int column;
cin >> count;
while (count--)
{
row = -1;
column = -1;
memset(map, 0, sizeof(map));
for (i = 1; i < 20; i++)
for (j = 1; j < 20; j++)
cin >> map[i][j];
//判断横排是否有五个相连
for (i = 1; i < 20; i++)
for (j = 1; j < 16; j++)
{
if (map[i][j] == 0)
continue;
same = 1;
k = j + 1;
while (k <= 19 && map[i][j] == map[i][k])//判断横排中有无5个连续相同
{
same++;
k++;
}
if (same == 5 && map[i][j] != map[i][j-1])
{
row = i;
column = j;
winner = map[i][j];
break;
}
}
//判断竖排是否有五个相连
if (same != 5)
{
for (j = 1; j < 20; j++)
for (i = 1; i < 16; i++)
{
if (map[i][j] == 0)
continue;
same = 1;
k = i + 1;
while (k <= 19 && map[i][j] == map[k][j])
{
same++;
k++;
}
if (same == 5 && map[i][j] != map[i-1][j])
{
row = i;
column = j;
winner = map[i][j];
break;
}
}
}
//判断右下是否有五个相连
if (same != 5)
{
for (i = 1; i < 16; i++)
for (j = 1; j < 16; j++)
{
if (map[i][j] == 0)
continue;
same = 1;
k = i + 1;
l = j + 1;
while (k <= 19 && l <= 19 && map[i][j] == map[k][l])
{
same++;
k++;
l++;
}
if (same == 5 && map[i][j] != map[i-1][j-1])
{
row = i;
column = j;
winner = map[i][j];
break;
}
}
}
//判断右上是否有五个相连
if (same != 5)
{
for (i = 5; i < 20; i++)
for (j = 1; j < 16; j++)
{
if (map[i][j] == 0)
continue;
same = 1;
k = i - 1;
l = j + 1;
while (k >= 0 && l <= 19 && map[i][j] == map[k][l])
{
same++;
k--;
l++;
}
if (same == 5 && map[i][j] != map[i+1][j-1])
{
row = i;
column = j;
winner = map[i][j];
break;
}
}
}
if (winner != 0 && row != -1 && column != -1)
{
cout << winner << endl;
cout << row << " " << column << endl;
}
else
cout << 0 << endl;
}
return 0;
}