250704
#include <stdio.h>
int arr[1100][1100]={}, queue[3][10000]={}, v[1000]={};
int back=-1, front=-1, frunt=-1;
void push(int k, int u)
{
back++;
queue[1][back]=k;
queue[2][back]=u;
}
int pop()
{
front++;
return queue[1][front];
}
int pup()
{
frunt++;
return queue[2][frunt];
}
int main()
{
int n, m, i, j, k=1, p, q, d=0, sum=0;
scanf("%d %d", &n, &m);
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
{
scanf("%d", &arr[i][j]);
}
}
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
{
if(arr[i][j]==1)
{
push(i, j);
}
}
}
while(back!=front&&back!=front)
{
d=0;
p=pop();
q=pup();
if(arr[p][q]==0)
{
arr[p][q]=1;
push(p+1, q);
push(p, q+1);
push(p-1, q);
push(p, q-1);
sum++;
}
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
{
if(arr[i][j]==1)
{
d++;
}
}
}
if(d==n*m)
{
break;
}
}
printf("%d", sum);
return 0;
}




