#include <stdio.h>
typedef struct
{
int x;
int y;
} Q;
Q que[1000]= {};
int front=-1,back=-1,rx,ry,arr[1000][1000]= {},day=0,lx,ly;
int a;
void push(int x,int y)
{
arr[x][y]=1;
que[++back].x=x;
que[back].y=y;
}
void bfs()
{
while (front!=back)
{
rx=que[++front].x;
ry=que[front].y;
for ()
{
if (arr[rx+1][ry]==0) push(rx+1,ry);
if (arr[rx-1][ry]==0) push(rx-1,ry);
if (arr[rx][ry+1]==0) push(rx,ry+1);
if (arr[rx][rx-1]==0) push(rx,ry-1);
}
day++;
a=back;
}
}
int main()
{
for (int i=0 ; i<1000 ; i++)
{
for (int j=0 ; j<1000 ; j++)
{
arr[i][j]=5;
}
}
int x,y;
scanf("%d %d",&y,&x);
for (int i=1 ; i<=x ; i++)
{
for (int j=1 ; j<=y ; j++)
{
scanf("%d",&arr[i][j]);
}
}
for (int i=1 ; i<=x ; i++)
{
for (int j=1 ; j<=y ; j++)
{
if (arr[i][j]==1)
{
push(i,j);
// bfs(i,j);
}
}
}
a=back;
bfs();
printf("\n\nD - %d\n",day);
for (int i=1 ; i<=x ; i++)
{
for (int j=1 ; j<=y ; j++)
{
printf("%d ",arr[i][j]);
}
printf("\n");
}
}