#include<iostream>
using namespace std;
char c[110][110];
bool flag[110][110]={0};
int m,n,cnt;
void search(int x,int y)
{
if(flag[x][y])
{
return;
}
if(x>m||y>n||x<0||y<0)
{
return;
}
if(c[x][y]=='.')
{
return;
}
if(flag[x+1][y]||flag[x-1][y]||flag[x][y+1]||flag[x][y-1]||
flag[x+1][y+1]||flag[x+1][y-1]||flag[x-1][y+1]||flag[x-1][y-1])
{
flag[x][y]=true;
search(x+1,y);
search(x,y+1);
search(x,y-1);
search(x-1,y);
search(x+1,y+1);
search(x-1,y+1);
search(x+1,y-1);
search(x-1,y-1);
return;
}
cnt++;
flag[x][y]=true;
search(x+1,y);
search(x,y+1);
search(x,y-1);
search(x-1,y);
search(x+1,y+1);
search(x-1,y+1);
search(x+1,y-1);
search(x-1,y-1);
return;
}
int main()
{
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
cin>>c[i][j];
}
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
if(c[i][j]=='W')
{
search(i,j);
flag[i][j]=true;
}
}
}
printf("%d",cnt);
return 0;
}