#include<bits/stdc++.h>
using namespace std;
bool flag[110][110];
int a[110][110],cnt,n,m;
struct coord
{
int x,y;
};
int walk[4][2]={{0,1},{0,-1},{1,0},{-1,0}};
queue<coord> Q;
void bfs(int u,int v)
{
coord tmp={u,v};
Q.push(tmp);
while(!Q.empty())
{
coord t=Q.front();
int ux=t.x,uy=t.y;
Q.pop();
for(int k=0;k<4;k++)
{
int x=ux+walk[k][0],y=uy+walk[k][1];
if(x<1||x>n||y<1||y>m||flag[x][y]) continue;
flag[x][y]=true;
coord tmp={x,y};
Q.push(tmp);
}
}
}
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
scanf("%1d",&a[i][j]);
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
if(a[i][j]!=0 && !flag[i][j])
{
bfs(i,j);
cnt++;
}
cout<<cnt;
return 0;
}