250817
#include <stdio.h>
int m, n, k, s=0, e=0;
int res=1;
int arr[1001][1001]= {};
int q[2][10001]= {};
int px, py;
void push(int x, int y)
{
if (x>m || y>n || x<1 || y<1 || arr[x][y]!=0)
{
return;
}
printf("%d %d\n",x,y);
q[0][e]=x;
q[1][e]=y;
arr[x][y]=1;
arr[x][y]=res;
e++;
}
void pop()
{
s++;
px = q[0][s-1];
py = q[1][s-1];
}
int main()
{
scanf("%d %d", &n, &m);
for (int i=1 ; i<=m ; i++)
{
for (int j=1 ; j<=n ; j++)
{
scanf("%d", &arr[i][j]);
if (arr[i][j]==1)
{
q[0][e]=i;
q[1][e]=j;
e++;
}
}
}
while (s!=e)
{
res++;
int f = e;
for (int i=s ; i<f ; i++)
{
pop();
//printf("%d %d\n",px,py);
push (px, py+1);
push (px-1, py);
push (px+1, py);
}
}
// if (e==n*m)
// {
// printf("0");
// }
printf("\n");
for (int i=1 ; i<=m ; i++)
{
for (int j=1 ; j<=n ; j++)
{
printf("%d ", arr[i][j]);
}
printf("\n");
}
for (int i=1 ; i<=m ; i++)
{
for (int j=1 ; j<=n ; j++)
{
if (arr[i][j]==0)
{
k=-1;
}
}
}
printf("%d", k);
return 0;
printf("%d", res-2);
}




