#include<bits/stdc++.h>
using namespace std;
void look(int,int,char);
void zen(int ,int ,char);
int w,h;
vector<vector <char> >a;
int cb;
int cw;
int cou;
int main(){
  while(1){
    cb=0;
    cw=0;
    cin >> w >> h;
    if(w==0&&h==0)break;
    a=vector<vector<char> >(h,vector<char>(w));
    for(int i=0;i<h;i++){
      for(int j=0;j<w;j++){
	cin >> a[i][j];
      }
    }
    for(int i=0;i<h;i++){
      for(int j=0;j<w;j++){
	if(a[i][j]=='W'){
	  look(i,j,'W');
	}
	else if(a[i][j]=='B'){
	  look(i,j,'B');
	}
      }
    }
    cout << cb << " " << cw << endl;
  }
  return 0;

}
void look(int I,int J,char cl){
  int lx[4]={-1,0,1,0};
  int ly[4]={0,-1,0,1};
  for(int i=0;i<4;i++){
    if(I+lx[i]<0||I+lx[i]>=h||J+ly[i]<0||J+ly[i]>=w)continue;
    if(a[I+lx[i]][J+ly[i]]=='.'){
      cou=0;
      zen(I+lx[i],J+ly[i],cl);
      if(cou!=-1){
	if(cl=='B')cb+=cou;
	else cw+=cou;
      }
    }
  }
}
void zen(int I,int J,char cl){
  if(a[I][J]=='.'){
    a[I][J]='l';
    if(cou>=0)cou++;
  }
  else if(a[I][J]==cl||a[I][J]=='l')return;
  else{
    cou = -1;
    return;
  }
  int lx[4]={-1,0,1,0};
  int ly[4]={0,-1,0,1};
  for(int i=0;i<4;i++){
    if(I+lx[i]<0||I+lx[i]>=h||J+ly[i]<0||J+ly[i]>=w)continue;
    zen(I+lx[i],J+ly[i],cl);
  }
}

    