#include<bits/stdc++.h>
using namespace std;
queue<int> qx;
queue<int> qy;
int zx[]={-1,0,1,0};
int zy[]={0,-1,0,1};
int n,m,vis[1005][1005];
char vt[1005][1005];
void bfs(int x,int y){
vis[x][y]=1;
qx.push(x);
qy.push(y);
while(!qx.empty() && !qy.empty()){
for(int i=0;i<4;i++){
int tx=qx.front()+zx[i];
int ty=qy.front()+zy[i];
if(vt[tx][ty]!='0' && tx>=0 && tx<n && ty>=0 && ty<m && vis[tx][ty]==1){
qx.push(tx);
qy.push(ty);
vt[tx][ty]=vt[qx.front()][qy.front()]+1;
}
}
qx.pop();
qy.pop();
}
}
int main(){
int sum=0;
cin>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
cin>>vt[i][j];
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++){
if(vt[i][j]!='0' && vis[i][j]!=1){
bfs(i,j);
sum++;
}
}
cout<<sum;
return 0;
}