#include <cstdio>
#include <queue>
#include <algorithm>
using namespace std;
typedef pair<int,int> P;
queue<P>que;
#define mp make_pair
#define f first
#define s second
char field[105][105];
int dx[4]={-1,0,1,0},dy[4]={0,-1,0,1};
int n,m,ans=0;
bool in(int c,int d){
	if(c>=1 && c<=n){
		if(d>=1 && d<=m){
			return true;
		}
	}
	return false;
}
void dfs(int a,int b){
	que.push(mp(a,b));
	while(que.size()){
		P p=que.front(); que.pop();
		for(int i=0;i<4;i++){
				if(field[p.f+dx[i]][p.s+dy[i]]=='W' && in(p.f+dx[i],p.s+dy[i])){
					que.push(mp(p.f+dx[i],p.s+dy[i]));
					field[p.f+dx[i]][p.s+dy[i]]='.';
				}
			}
		}
	}
int main(){
	int n;
	for(int i=1;;i++){
		gets(field[i]);
		if(field[i][0]==' '){
			n=i-1;
			break;
		}
	}
	int m=strlen(field[1]);
	for(int i=1;i<=n;i++){
		for(int j=m;j>=1;j--){
			field[i][j]=field[i][j-1];
		}
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			if(field[i][j]=='W'){
				dfs(i,j);
				ans++;
			}
		}
	}
	printf("%d\n",ans);
	return 0;
}