#include<iostream>
#include<queue>
//思路:从第一个w开始进行广搜,搜过的点进行标记,保证不会重复搜索
//进行了多少次bfs,答案就是几
using namespace std;
queue<int>point_x,point_y;
int vis[105][105]={0};
char ch[105][105];
int m,n;
int ans=0;
int xx[]={1,1,1,0,0,-1,-1,-1};
int yy[]={0,1,-1,-1,1,1,0,-1};
void bfs()
{
int i;
int x,y,x0,y0;
while(!point_x.empty())
{
x=point_x.front();
y=point_y.front();
for(i=0;i<7;i++)
{
x0=x+xx[i];
y0=y+yy[i];
if(x0>0&&x0<=m&&y0>0&&y0<=n&&!vis[x0][y0]&&ch[x0][y0]=='W')
{
point_x.push(x0);
point_y.push(y0);
vis[x0][y0]=1;
}
}
point_x.pop();
point_y.pop();
}
}
int main(void)
{
int i,j;
cin>>m>>n;
for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
cin>>ch[i][j];
for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
{
if(ch[i][j]=='W'&&!vis[i][j])
{
vis[i][j]=1;
point_x.push(i);
point_y.push(j);
bfs();
ans++;
}
}
cout<<ans;
return 0;
}