#include<iostream>
using namespace std;
int arr[1005][1005];
int fx[8][2]={{1,0},{1,1},{0,1},{-1,1},{-1,0},{-1,-1},{0,-1},{1,-1}};
int n,m;
void dfs(int x,int y){
if(arr[x][y]!=2) return;
arr[x][y] = 4;
dfs(x+1,y);
dfs(x+1,y+1);
dfs(x,y+1);
dfs(x-1,y+1);
dfs(x-1,y);
dfs(x-1,y-1);
dfs(x,y-1);
dfs(x+1,y-1);
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>arr[i][j];
}
}
for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)if(arr[i+1][j] != 1 &&arr[i+1][j+1] != 1 &&arr[i][j+1] != 1 &&arr[i-1][j+1] != 1 &&arr[i-1][j] != 1 &&arr[i-1][j-1] != 1 &&arr[i][j-1] != 1 &&arr[i+1][j-1] != 1 && arr[i][j]==0)arr[i][j] = 2;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
if(arr[i+1][j] != 1 &&arr[i+1][j+1] != 1 &&arr[i][j+1] != 1 &&arr[i-1][j+1] != 1 &&arr[i-1][j] != 1 &&arr[i-1][j-1] != 1 &&arr[i][j-1] != 1 &&arr[i+1][j-1] != 1 && arr[i][j]==2){
if(arr[i+1][j]!=2) arr[i+1][j] = 3;
if(arr[i+1][j+1]!=2) arr[i+1][j+1]= 3;
if(arr[i][j+1]!=2) arr[i][j+1] = 3;
if(arr[i-1][j+1]!=2) arr[i-1][j+1]=3;
if(arr[i-1][j]!=2) arr[i-1][j]=3;
if(arr[i-1][j-1]!=2) arr[i-1][j-1]=3;
if(arr[i][j-1]!=2) arr[i][j-1] = 3;
if(arr[i+1][j-1]!=2) arr[i+1][j-1] = 3;
}
}
}
int cnt =0;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
if(arr[i][j] == 0) cnt++;
else{
if(arr[i][j]==2){
dfs(i,j);
cnt++;
}
}
}
}
cout<<cnt;
return 0;
}