#include <stdio.h>
int map[16][16] = { { 0, }, };
int visited[16][16] = { { 0, }, };
int find(int x, int y) {
int result = 0;
if (map[x][y] == 1) {
return result;//벽은 리턴
}
if (map[x][y] == 3)
return 1;
visited[x][y] = 1;//왔으므로 체크
if (visited[x - 1][y] == 0)
result = find(x - 1, y);//위
if (result)
{
visited[x][y] = 0;
return result;
}
if (visited[x][y + 1] == 0)
result = find(x, y + 1);//오른
if (result)
{
visited[x][y] = 0;
return result;
}
if (visited[x + 1][y] == 0)
result = find(x + 1, y);
if (result)
{
visited[x][y] = 0;
return result;
}
if (visited[x][y - 1] == 0)
result = find(x, y - 1);
visited[x][y] = 0;//나갈꺼니까 0
return result;
}
int main(void) {
int test_case = 10;
//scanf("%d", &test_case);
for (int z = 1; z <= test_case; z++) {
int n;
scanf("%d", &n);
int sx = 0, sy = 0;
for (int i = 0; i < 16; i++)
for (int j = 0; j < 16; j++)
{
scanf("%1d", &map[i][j]);
if (map[i][j] == 2)
{
sx = i;
sy = j;
}
}
printf("#%d %d\n", z, find(sx, sy));
}
return 0;
}