#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")