#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;
}