//4381 토마토
#include <stdio.h>
int arr[1001][1001]={};
int queue[2][1001]={};
int back=-1, front=-1;
int i,px,py,sum=0;
int push(int m, int n)
{
back++;
queue[1][back]=m;
queue[2][back]=n;
arr[m][n]=1;
}
void pop()
{
front++;
px=queue[1][front];
py=queue[2][front];
}
void bfs()
{
while(back!=front)
{
pop();
printf("%d %d\n",px,py);//실험
if(arr[px][py+1]==0)
{
push(px,py+1);
}
if(arr[px+1][py]==0)
{
push(px+1,py);
}
if(arr[px][py-1]==0)
{
push(px,py-1);
}
if(arr[px-1][py]==0)
{
push(px-1,py);
}
}
}
int main()
{
int j,a,b;
scanf("%d %d",&a,&b);
for(i=1 ; i<=b ; i++)
{
for(j=1 ; j<=a ; j++)
{
scanf("%d",&arr[i][j]);
if(arr[i][j]==1)
{
push(i,j);
}
}
}
bfs();
printf("%d",sum);
}
/*
#include <stdio.h>
int arr[10][10]={};
int temp=0,px,py;
int queue[4][51]={};
int back=-1,front=-1;
int push(int m,int n)
{
back++;
queue[1][back]=m;
queue[2][back]=n;
arr[m][n]=0;
temp++;
}
void pop()
{
front++;
px=queue[1][front];
py=queue[2][front];
}
void bfs(int x, int y, int z)
{
push(x,y);
arr[x][y]=0;
while(front!=back)
{
pop();
//printf("%d %d\n",px,py);
if(arr[px][py+1]==z)
{
push(px,py+1);
arr[px][py+1]=0;
}
if(arr[px+1][py]==z)
{
push(px+1,py);
arr[px+1][py]=0;
}
if(arr[px][py-1]==z)
{
push(px,py-1);
arr[px][py-1]=0;
}
if(arr[px-1][py]==z)
{
push(px-1,py);
arr[px-1][py]=0;
}
}
}
int main()
{
int i,j,sum=0;
for(i=1 ; i<=7 ; i++)
{
for(j=1 ; j<=7 ; j++)
{
scanf("%d",&arr[i][j]);
}
}
for(i=1 ; i<=7 ; i++)
{
for(j=1 ; j<=7 ; j++)
{
if(arr[i][j]==0)
continue;
// printf("bfs start\n");
bfs(i,j,arr[i][j]);
if(temp>=3)
{
sum++;
}
temp=0;
// printf("\nbfs end---\n");
}
}
printf("%d",sum);
return 0;
}
*/

