#include <bits/stdc++.h>
using namespace std;
static const int MAX_N = 100;
static const int MAX_M = 100;
char field[MAX_N][MAX_M];
int n,m;
int dx[8]={1,1,0,-1,-1,-1,0,1},dy[8]={0,1,1,1,0,-1,-1,-1};
void dfs(int y,int x)
{
field[y][x] = '.';
for(int i=0;i<8;i++){
int ny = y+dy[i];
int nx = x+dx[i];
if(0<=nx && nx<m && 0<=ny && ny<n && field[ny][nx]=='W'){
dfs(ny,nx);
}
}
}
int main()
{
int cnt = 0;
cin>>n>>m;
string tmp;
for(int i=0;i<n;i++){
cin>>tmp;
for(int j=0;j<m;j++){
field[i][j] = tmp[j];
}
}
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
if(field[i][j]=='W'){
cnt += 1;
dfs(i,j);
}
}
}
cout<<cnt<<endl;
return 0;
}