#include <string>
#include <cstring>
#include <cstdio>
#include <vector>
#include <algorithm>
using namespace std;

typedef vector<pair<int,int> >vpii;
char m[99][99];

char dfs(int i, int j, vpii&v){
	if(m[i][j]=='B')return 1;
	if(m[i][j]=='W')return 2;
	if(m[i][j]=='X')return 0;
	int ret=0;
	v.push_back(make_pair(i,j));
	if(find(v.begin(),v.end(),make_pair(i-1,j))==v.end())ret|=dfs(i-1,j,v);
	if(find(v.begin(),v.end(),make_pair(i+1,j))==v.end())ret|=dfs(i+1,j,v);
	if(find(v.begin(),v.end(),make_pair(i,j-1))==v.end())ret|=dfs(i,j-1,v);
	if(find(v.begin(),v.end(),make_pair(i,j+1))==v.end())ret|=dfs(i,j+1,v);
	return ret;
}

int main(){
	int w,h,i,j,k,r,s;
	for(;scanf("%d%d",&w,&h),w;printf("%d %d\n",r,s)){
		r=s=0;
		memset(m,'X',sizeof(m)); //Iron Puyo
		for(i=1;i<=h;i++)scanf("%s",m[i]+1),m[i][w+1]='X',m[i][w+2]=0;
		for(i=1;i<=h;i++)
			for(j=1;j<=w;j++)
				if(m[i][j]=='.'){
					vpii v;
					char x=dfs(i,j,v);
					for(k=0;k<v.size();k++)
					m[v[k].first][v[k].second]=x;
				}
		for(i=1;i<=h;i++)
			for(j=1;j<=w;j++)
				if(m[i][j]==1)r++;
				else if(m[i][j]==2)s++;
	}
}