#include<iostream>
using namespace std;
int n,m,p,q,ans;
bool vis[25][25];
char a[25][25];
int dx[8] = {0, 0, 1, -1,1,-1,+1,-1};
int dy[8] = {-1, 1, 0, 0,1,-1,-1,+1};
void dfs(int x,int y)
{
if(x<1||x>n||y<1||y>m)
return ;
if(vis[x][y]==true)
return ;
if(a[x][y]!='0')
return ;
vis[x][y]=true;
for(int i = 0; i <= 7; i++)
{
int x_new = x + dx[i], y_new = y + dy[i];
dfs(x_new, y_new);
}
}
int main(){
cin>>m>>n;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
{
cin>>a[i][j];
}
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
{
if(a[i][j]=='1')
{
if(a[i-1][j]=='0') a[i-1][j]='2';
if(a[i][j-1]=='0') a[i][j-1]='2';
if(a[i+1][j]=='0') a[i+1][j]='2';
if(a[i][j+1]=='0') a[i][j+1]='2';
if(a[i-1][j-1]=='0') a[i-1][j-1]='2';
if(a[i-1][j+1]=='0') a[i-1][j+1]='2';
if(a[i+1][j-1]=='0') a[i+1][j-1]='2';
if(a[i+1][j+1]=='0') a[i+1][j+1]='2';
}
}
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
{
if(a[i][j]=='2')
{
if(a[i-1][j]=='0') a[i][j]='3';
if(a[i][j-1]=='0') a[i][j]='3';
if(a[i+1][j]=='0') a[i][j]='3';
if(a[i][j+1]=='0') a[i][j]='3';
if(a[i-1][j-1]=='0') a[i][j]='3';
if(a[i-1][j+1]=='0') a[i][j]='3';
if(a[i+1][j-1]=='0') a[i][j]='3';
if(a[i+1][j+1]=='0') a[i][j]='3';
}
}
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
{
if(a[i][j]=='2')
{
ans++;
continue;
}
if(vis[i][j]==false&&a[i][j]=='0')
{
ans++;
dfs(i,j);
}
}
cout<<ans<<endl;
return 0;
}