/*
** Lake Counting
** 有一个大小为N*M的园子,雨后积起了水。八连通的积水被认为是连在一起的。请求出院子里共有多少水洼?
** 算法来源:《挑战程序设计大赛》
*/
#include <stdlib.h>
#include <stdio.h>
const int MAX_N = 50;
const int MAX_M = 50;
int M, N;
char field[MAX_N][MAX_M];
void dfs(int x, int y){
field[x][y] = '.';
for(int dx=-1; dx<=1; dx++){
for(int dy=-1; dy<=1; dy++){
int nx = dx+x, ny = dy+y;
if(0<=nx && nx<N && 0<=ny && ny<M && field[nx][ny] == 'W'){
dfs(nx, ny);
}
}
}
}
void solve(){
int res = 0;
for(int i=0; i<N; i++){
for(int j=0; j<=M; j++){
if(field[i][i] == 'W'){
dfs(i, j);
res++;
}
}
}
printf("%d
", res);
}
int main(){
scanf("%d %d", &N, &M);
for(int i=0; i<N; i++){
for(int j=0; j<=M; j++){
scanf("%c", &field[i][j]);
}
}
solve();
system("pause");
return 0;
}