#include <iostream>
using namespace std;
void dfs(int,int);
int w,h,mat[50][50],flagb,flagw,cnt;
int main(){
  int i,j,bcnt,wcnt;
  string data[50];
  while(1){
    bcnt=0;
    wcnt=0;
    cin >> w >> h;
    if(w==0&&h==0) break;
    for(i=0;i<h;i++){
      cin >> data[i];
    }  
    for(i=0;i<h;i++){
      for(j=0;j<w;j++){
        if(data[i][j]=='B') mat[i][j]=1;
        else if(data[i][j]=='W') mat[i][j]=2;
        else mat[i][j]=0;
      }
    }
   
    for(i=0;i<h;i++){
      for(j=0;j<w;j++){
	cnt=0;
	flagb=0;
	flagw=0;
        if(mat[i][j]==0){
	  dfs(i,j);
	  if(flagb==1&&flagw==1){
	    bcnt+=0;
	    wcnt+=0;
	  }
	  else if(flagb==1){
	    bcnt+=cnt;
	  }
          else if(flagw==1){
	    wcnt+=cnt;
	  }
	}
      }
    }
    cout << bcnt << ' ' << wcnt << endl;
  }
  return 0;
}
void dfs(int i,int j){
  if(mat[i][j]==3) return ;
  if(mat[i][j]==1){
    flagb=1;
    return ;
  }
  if(mat[i][j]==2){
    flagw=1;
    return ;
  }
  if(mat[i][j]==0){
    cnt++;
  } 
  if(mat[i][j]==3) return ;
  mat[i][j]=3;
  if(j+1<w) dfs(i,j+1);
  if(0<=j-1) dfs(i,j-1);
  if(i+1<h) dfs(i+1,j);
  if(0<=i-1) dfs(i-1,j);
}
//1:B 2:W