#include<bits/stdc++.h>
#define N 50
using namespace std;
int w,h,a[N][N],cnt,wcnt,bcnt;
int W,B,used[N][N];
int dy[4]={-1,0,1,0};
int dx[4]={0,1,0,-1};
string s[N];

void dfs(int y,int x){
  if(used[y][x])return;
  used[y][x]=1;
  cnt++;
  for(int i=0;i<4;i++){
    int ny=y+dy[i],nx=x+dx[i];
    if(ny<0||nx<0||h<=ny||w<=nx)continue;
    if(s[ny][nx]!='.'){
      if(s[ny][nx]=='B')B=1;
      if(s[ny][nx]=='W')W=1;
      continue;
    }
    dfs(ny,nx);
  }
}

int main(){
  while(1){
    cin>>w>>h;
    if(!w&&!h)break;
    for(int i=0;i<h;i++)cin>>s[i];
    memset(used,0,sizeof(used));
    wcnt=bcnt=0;
    for(int i=0;i<h;i++)
      for(int j=0;j<w;j++)
	if(!used[i][j]&&s[i][j]=='.'){
	  W=B=cnt=0;
	  dfs(i,j);
	  if(!W&&B)bcnt+=cnt;
	  if(W&&!B)wcnt+=cnt;
	}
    cout<<bcnt<<' '<<wcnt<<endl;
  }
  return 0;
}