#include<iostream>
using namespace std;
typedef pair<int,int> pii;
char grid[60][60];
int dx[4]={1,0,-1,0},dy[4]={0,1,0,-1};
int W,H;
int bw=3;
int dfs(int color,int w,int h){
   grid[h][w]=-1;
  int res=1;
  for(int i=0;i<4;i++){
    int nx,ny;
    nx=w+dx[i];ny=h+dy[i];
    if(0<=ny && ny<H &&
       0<=nx && nx < W){
      if(grid[ny][nx]=='.'){
	res += dfs(color,nx,ny);
      }else if(grid[ny][nx]=='W')bw=1 & bw;
      else if(grid[ny][nx]=='B')bw=2 & bw;
    }
  }
  return res;
}

void printGrid(){
  for(int i=0;i<H;i++){
    for(int j=0;j<W;j++){
      cout << grid[i][j] << " ";
    }
    cout << endl;
  }
  cout << endl;
}  

int main(){
  while(cin>>W>>H){
    if(W==0)break;
    for(int i=0;i<H;i++)
      for(int j=0;j<W;j++){
	cin>>grid[i][j];
      }
    int white=0,black=0;
    for(int i=0;i<H;i++){
      for(int j=0;j<W;j++){
	if(grid[i][j]=='.'){
	  bw=3;
	  int tmp=dfs(0,j,i);
	  if(bw==1)white+=tmp;
	  else if(bw==2)black+=tmp;
	}
      }
    }
    cout << black << " " << white << endl;
  }
  return 0;
}