/*
#include <stdio.h>
int arr[20][20]= {};
int k[10]= {};
int r;
void dfs(int p, int q, int c, int dir)
{
if (arr[p][q]!=c || p>19 || q>19 || p<1 || q<1)
{
return;
}
r++;
if (dir==1)
{
dfs(p, q+1, c, dir);
}
if (dir==2)
{
dfs(p-1, q+1, c, dir);
}
if (dir==3)
{
dfs(p+1,q+1,c,dir);
}
if (dir==4)
{
dfs(p+1,q,c,dir);
}
}
int main()
{
int d;
for (int i=1 ; i<=19 ; i++)
{
for (int j=1 ; j<=19 ; j++)
{
scanf("%d", &arr[i][j]);
}
}
for (int i=1 ; i<=19 ; i++)
{
for (int j=1 ; j<=19 ; j++)
{
if (arr[i][j]!=0)
{
for(d=1 ; d<=4 ; d++)
{
r=0;
if ((d==1 && arr[i][j]!=arr[i][j-1]) || (d==2 && arr[i][j]!=arr[i+1][j-1]) || (d==3 && arr[i][j]!=arr[i-1][j-1]) || (d==4 &&arr[i][j]!=arr[i-1][j]))
{
dfs(i, j,arr[i][j], d);
}
if(r==5)
{
printf("%d\n%d %d",arr[i][j], i, j);
return 0;
}
}
}
}
}
if (r<5 || r>5)
{
printf("0");
}
}
#include <stdio.h>
int arr[101]= {};
int s=0, e=0;
void push(int k)
{
arr[e]=k;
e++;
}
int pop()
{
s++;
return arr[s-1];
}
int main()
{
int n, a, x, y, p;
int sum=0;
int m[101][101]= {};
int f[101]={};
scanf("%d %d", &n, &a);
for (int i=1 ; i<=a ; i++)
{
scanf("%d %d", &x, &y);
m[x][y]=1;
m[y][x]=1;
}
push (1);
f[1]=1;
while (s!=e)
{
int node = pop(); // node와 연결, 방문x 노드 모두 push
for (p=2 ; p<=n ; p++)
{
if (m[node][p]==1 && f[p]==0)
{
push(p);
sum++;
f[p]=1;
}
}
}
printf("%d", sum);
}
*/
//
//연습 bfs 2605 4421
//only bfs 1512 3600 4781
#include <stdio.h>
int k[100][100]={};
int s=0, e=0, e2=0;
void push (int x, int y)
{
k[e]=x;
e++;
}
int pop()
{
s++;
return k[s-1];
}
int main()
{
int n;
int arr[25][25]={};
scanf("%d", &n);
for (int i=1 ; i<=n ; i++)
{
for (int j=1 ; j<=n ; j++)
{
scanf("%1d", &arr[i][j]);
}
}
for (int i=1 ; i<=n ; i++)
{
for (int j=1 ; j<=n ; j++)
{
if (arr[i][j]==1)
{
while (s!=e)
{
pop();
push(i, j);
arr[i][j]=0;
}
}
}
}
}



