#include <iostream>
using namespace std;
char a[101][101];
int NUM1, NUM2;
void dfs(int x,int y)
{
a[x][y]='.';
if(((x-1)>=0)&&(a[x-1][y]=='W'))//上
{
dfs(x-1,y);
}
if(((x+1)<NUM1)&&(a[x+1][y]=='W'))//下
{
dfs(x+1,y);
}
if(((y-1)>=0)&&(a[x][y-1]=='W'))//左
{
dfs(x,y-1);
}
if(((y+1)<NUM2)&&(a[x][y+1]=='W'))//右
{
dfs(x,y+1);
}
if(((x-1)>=0)&&((y-1)>=0)&&(a[x-1][y-1]=='W'))//左上
{
dfs(x-1,y-1);
}
if(((x+1)<NUM1)&&((y+1)<NUM2)&&(a[x+1][y+1]=='W'))//右下
{
dfs(x+1,y+1);
}
if(((x-1)>=0)&&((y+1)<NUM2)&&(a[x-1][y+1]=='W'))//右上
{
dfs(x-1,y+1);
}
if(((x+1)<NUM1)&&((y-1)>=0)&&(a[x+1][y-1]=='W'))//左下
{
dfs(x+1,y-1);
}
}
int main()
{
cin>>NUM1>>NUM2;
for(int i=0;i<NUM1;i++)
{
for(int j=0;j<NUM2;j++)
{
cin>>a[i][j];
}
}
int jg=0;
for(int i=0;i<NUM1;i++)
{
for(int j=0;j<NUM2;j++)
{
if(a[i][j]=='W')
{
jg++;
dfs(i,j);
}
}
}
cout<<jg;
/*
cout<<endl;
for(int i=0;i<NUM1;i++)
{
for(int j=0;j<NUM2;j++)
{
cout<<a[i][j]<<" ";
}
cout<<endl;
}*/
return 0;
}