#include<bits/stdc++.h>
using namespace std;
char G[105][105];
int vis[105][105];
//方向数组,上右下左
int dx[8] = {0,1,1,1,0,-1,-1,-1};
int dy[8] = {1,1,0,-1,-1,-1,0,1};
int n,m,cnt=0;
void dfs(int x,int y){
for(int i=0;i<8;i++){
int xx=x+dx[i],yy=y+dy[i];
if(xx>=0&&xx<n&&yy>=0&&yy<m&&G[xx][yy]=='W'
&&vis[xx][yy]==0){
vis[xx][yy]=1;
dfs(xx,yy);
}
}
}
int main() {
cin>>n>>m;
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
cin>>G[i][j];
}
}
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
if(G[i][j]=='W' && vis[i][j]==0){
vis[i][j]==1;
dfs(i,j);
cnt++;//每次搜索都+1
}
}
}
cout<<cnt;
return 0;
}