#include<bits/stdc++.h>
using namespace std;
const int dx[4]={0,-1,0,1};
const int dy[4]={-1,0,1,0};
struct Node{
int a,b;
};
queue<Node>q;
int g[110][110];
int n,m,ans=1,x,y;
int bfs();
int main(){
cin>>n>>m;
memset(g,0,sizeof(g));
for (int i=1;i<=n;i++){
string s;
cin>>s;
for (int j=0;j<m;j++) g[i][j]=s[j]-'0';
}
for (int i=1;i<=n;i++){
for (int j=1;j<=m;j++){
if (g[i][j]){
while (!q.empty()) q.pop();
ans++;
x=i,y=j;
bfs();
}
}
}
cout<<ans<<endl;
return 0;
}
int bfs(){
q.push({x,y});
g[x][y]=0;
while (!q.empty()){
Node tmp=q.front(); q.pop();
for (int i=0;i<4;i++){
int x1=tmp.a+dx[i];
int y1=tmp.b+dy[i];
if (!g[x1][y1]) continue;
g[x1][y1]=0;
q.push({x1,y1});
}
}
}