#include<iostream>
#include<cstdio>
using namespace std;
#define MAXN 150
int N,M;
char Map[MAXN][MAXN];
void dfs(int x,int y){
Map[x][y]='.';
for(int dx=-1;dx<=1;dx++){
for(int dy=-1;dy<=1;dy++){
int new_x=x+dx;
int new_y=y+dy;
if(0<=new_x&&new_x<N&&0<=new_y&&new_y<M&&Map[new_x][new_y]=='W'){
dfs(new_x,new_y);
}
}
}
}
int main(){
cin>>N>>M;
for(int i=0;i<N;i++){
for(int j=0;j<M;j++){
cin>>Map[i][j];
}
}
int ans=0;
for(int i=0;i<N;i++){
for(int j=0;j<M;j++){
if(Map[i][j]=='W'){
Map[i][j]='.';
dfs(i,j);
ans++;
}
}
}
printf("%d\n",ans);
return 0;
}