#include<bits/stdc++.h>
using namespace std;
const int N = 200;
int n,m,ans;
char table[N][N];
bool vis[N][N];
int dir[][2] = {{0,1},{1,0},{0,-1},{-1,0},{1,1},{1,-1},{-1,-1},{-1,1}};
int check(int x,int y){
if(x < 1 || x > n)return 0;
if(y < 1 || y > m)return 0;
return 1;
}
void DFS(int x,int y){
table[x][y] = '.';
for(int i = 0;i <= 7;i++)
if(table[x + dir[i][0]][y + dir[i][1]] == 'W' && !vis[x + dir[i][0]][y + dir[i][1]]){
vis[x][y] = 1;
DFS(x + dir[i][0],y + dir[i][1]);
vis[x][y] = 0;
}
}
int main(){
cin>>n>>m;
for(int i = 1;i <= n;i++)
for(int j = 1;j <= m;j++)cin>>table[i][j];
for(int i = 1;i <= n;i++)
for(int j = 1;j <= m;j++)if(table[i][j] == 'W'){
ans++;
DFS(i,j);
}
cout<<ans;
return 0;
}