#include <bits/stdc++.h>
using namespace std;
int dx[]={-1,1,0,0,-1,-1,1,1};
int dy[]={0,0,-1,1,-1,1,-1,1};
vector<vector<bool>>vis;
vector<string>mp;
int n,m;
void dfs(int x,int y)
{
    vis[x][y]=true;
    for(int i=0;i<8;i++)
    {
        int nx=x+dx[i];
        int ny=y+dy[i];
        if(nx>=0&&nx<n&&ny>=0&&ny<m)
        {
            if(!vis[nx][ny]&&mp[nx][ny]=='W')
            {   

                dfs(nx,ny);
                
            }
        }
    }
}
int main() {
    
    cin>>n>>m;
    mp.resize(n);
    for(int i=0;i<n;i++)
    cin>>mp[i];
    vis.resize(n,vector<bool>(m,false));
    int waters=0;
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<m;j++)
        {
            if(!vis[i][j]&&mp[i][j]=='W')
            {
                waters++;
                dfs(i,j);
            }
        }
    }
    cout<<waters;


}
// 64 位输出请用 printf("%lld")