#include <bits/stdc++.h>
#include <cstring>
using namespace std;
#define int long long
const int N=110;
char G[N][N];
bool check[N][N];
//上下左右 左上右上 左下右下
int dx[]={-1,1,0,0,-1,-1,1,1};
int dy[]={0,0,-1,1,-1,1,-1,1};
int ans=0;int n,m;
void dfs(int x,int y)
{
    //终止条件
     if (x < 1 || x > n || y < 1 || y > m || G[x][y] != 'W' || check[x][y]) {
        return;
    }
    //操作
    check[x][y]=true;
    for (int i = 0; i < 8; i++) {
        int new_x = dx[i] + x;
        int new_y = dy[i] + y;
        dfs(new_x, new_y);
    }
}
void solve()
{
    cin>>n>>m;
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=m;j++)
        {
            cin>>G[i][j];
        }
    }
    memset(check, 0, sizeof(check));
    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= m; j++) {
            if (G[i][j] == 'W' && !check[i][j]) {
                ans++;
                dfs(i, j); 
            }
        }
    }
    cout << ans << endl;
}
signed main()
{
    solve();
    return 0;
}