#include <bits/stdc++.h>
#include <unistd.h>
using namespace std;
typedef long long ll;
typedef double db;
typedef long double ldb;
const ll MAXN=105;
char a[MAXN][MAXN];
ll n,m,ans;
const ll dir[][2]={{1,0},{0,1},{-1,0},{0,-1},{1,1},{-1,-1},{1,-1},{-1,1}};
struct Item{
ll x;
ll y;
};
void bfs(ll x,ll y){
queue<Item>q;
q.push({x,y});
while(!q.empty()){
Item curr=q.front();
q.pop();
for(ll i=0;i<8;++i){
ll nx=curr.x+dir[i][0],ny=curr.y+dir[i][1];
if(a[nx][ny]=='.'){
continue;
}
q.push({nx,ny});
a[nx][ny]='.';
}
}
}
int main() {
memset(a,'.',sizeof(a));
cin>>n>>m;
for(ll i=1;i<=n;++i){
cin>>(a[i]+1);
}
for(ll i=1;i<=n;++i){
for(ll j=1;j<=m;++j){
if(a[i][j]=='.')continue;
bfs(i,j);
++ans;
}
}
cout<<ans<<endl;
return 0;
}