#include <iostream>
#include <string>
using namespace std;
int w,h;
string mp[51];
void check() {
  for(int i=0;i<h;i++) 
    cout << mp[i] << endl;
  cout <<"--------------------"<<endl;
}

void saiki(int x,int y,char sta){
  int dx[4] = {0,0,-1,1};
  int dy[4] = {1,-1,0,0};
  for(int i=0;i<4;i++) {
    int nx = x+dx[i];
    int ny = y + dy[i];
    if(nx < 0 || ny < 0 || nx >=w || ny >=h) continue;
    if(mp[ny][nx] == '.'){
      mp[ny][nx] = sta;
      saiki(nx,ny,sta);
    }else if((sta == '1' && mp[ny][nx] == '2') || (sta == '2' && mp[ny][nx] == '1')) {
      mp[ny][nx] = '3';
      saiki(nx,ny,sta);
    } 
  }
}

int main() {

  while(1) {
    cin >> w >> h;
    if(w == 0 && h == 0) break;

    for(int i=0;i<h;i++) cin >> mp[i];

    for(int i=0;i<h;i++) 
      for(int j=0;j<mp[i].size();j++) {
	if(mp[i][j] == 'W') saiki(j,i,'1');//,check();
	else if(mp[i][j] == 'B') saiki(j,i,'2');//,check();
      }

    int ans[2]={0,0};
    for(int i=0;i<h;i++) 
      for(int j=0;j<mp[i].size();j++) {
	if(mp[i][j] == '1') ans[1]++;
	else if(mp[i][j] == '2') ans[0]++;
      }
    
    // check();
      cout << ans[0] <<" "<<ans[1] <<endl;
  }

  return  0;

}