#include <stdio.h>
int n, m, b, pc=0, pd=0, cnt=0;
int a[1002][1002]={};
int back=-1, front=-1;
int queue[2][10000]={};
void push(int c, int d)
{
back++;
queue[0][back]=c;
queue[1][back]=d;
}
int pop()
{
if(back==front)
{
return ;
}
else
{
front++;
pc=queue[0][front];
pd=queue[1][front];
}
}
int bfs(int c, int d)
{
int u;
int k=1;
push(c, d);
while(front!=back)
{
u=back;
while(front!=u)
{
cnt++;
pop(); // pc, pd에 pop한 결과 저장
if(pc-1>m && a[pc-1][pd]==0)
{
push(pc-1, pd);
a[pc-1][pd]=k;
}
if(pc+1<=n && a[pc+1][pd]==0)
{
push(pc+1, pd);
a[pc+1][pd]=k;
}
if(pd-1>m && a[pc][pd-1]==0)
{
push(pc, pd-1);
a[pc][pd-1]=k;
}
if(pd+1<=n && a[pc][pd+1]==0)
{
push(pc, pd+1);
a[pc][pd+1]=k;
}
}
}
}
int main()
{
int i, j;
scanf("%d %d", &m, &n);
for(i=0; i<n; i++)
{
for(j=0; j<m; j++)
{
scanf("%d", &a[i][j]);
if(a[i][j]==1)
{
push(i, j);
}
}
}
for(i=0; i<n; i++)
{
for(j=0; j<m; j++)
{
pop();
if(a[i][j]==1)
{
bfs(i, j);
}
}
}
/*for(i=0; i<n; i++)
{
for(j=0; j<m; j++)
{
printf("%d ", a[i][j]);
}
printf("\n");
}*/
// while(front!=back){
// front++;
// printf("%d %d\n",queue[0][front],queue[1][front]);
// }
printf("%d", cnt);
return 0;
}