#5-10错了
#include<bits/stdc++.h>
using namespace std;
bool flag[150][150],arr[150][150];
void count(int x,int y)
{
if(arr[x+1][y-1]&&flag[x+1][y-1])
{
flag[x+1][y-1]=false;
count(x+1,y-1);
}
if(arr[x+1][y]&&flag[x+1][y])
{
flag[x+1][y]=false;
count(x+1,y);
}
if(arr[x+1][y+1]&&flag[x+1][y+1])
{
flag[x+1][y+1]=false;
count(x+1,y+1);
}
if(arr[x][y+1]&&flag[x][y+1])
{
flag[x][y+1]=false;
count(x,y+1);
}
if(arr[x-1][y-1]&&flag[x-1][y-1])
{
flag[x-1][y-1]=false;
count(x-1,y-1);
}
if(arr[x-1][y]&&flag[x-1][y])
{
flag[x-1][y]=false;
count(x-1,y);
}
if(arr[x-1][y+1]&&flag[x-1][y+1])
{
flag[x-1][y+1]=false;
count(x-1,y+1);
}
}
int main()
{
string op;
int x,y,ans=0;
cin>>x>>y;
for(int i=1;i<=x;i++)
{
cin>>op;
for(int j=1;j<=y;j++)
{
flag[i][j]=true;
if(op[j-1]=='W') arr[i][j]=true;
else arr[i][j]=false;
}
}
for(int i=1;i<=x;i++)
for(int j=1;j<=y;j++)
if(arr[i][j]&&flag[i][j])
{
count(i,j);
ans++;
}
cout<<ans;
return 0;
}