#include <stdio.h>
int visited[101][101];
char s[101][101];
// 八连通方向:上、下、左、右、左上、右上、左下、右下
int direction[8][2] = {{-1,0}, {1,0}, {0,-1}, {0,1},
{-1,-1}, {-1,1}, {1,-1}, {1,1}};
int n, m;
void dfs(int a, int b)
{
visited[a][b] = 1;
for (int i = 0; i < 8; i++)
{
int x = a + direction[i][0];
int y = b + direction[i][1];
// 检查边界和访问状态
if (x>=0&&x<n&&y>= 0&&y<m&&visited[x][y]==0&&s[x][y] == 'W')
{
dfs(x, y);
}
}
}
int main()
{
scanf("%d %d", &n, &m);
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
scanf(" %c", &s[i][j]);
visited[i][j] = 0;
}
}
int count = 0;
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
if (visited[i][j]==0&& s[i][j] == 'W')
{
count++;
dfs(i, j);
}
}
}
printf("%d", count);
return 0;
}