#include<bits/stdc++.h>
using namespace std;
char ma[55][55];
int used[55][55];
int used2[55][55];
int w,h;
int dx[4]={0,0,-1,1};
int dy[4]={1,-1,0,0};

int dfs(int x,int y){
  if(x<0||y<0||x==h||y==w)return 2;
  if(ma[x][y]=='B')return 1;
  if(ma[x][y]=='W')return 0;
  if(used[x][y])return 2;
  used[x][y]=1;
  int sum[4]={};
  for(int i=0;i<4;i++)
    sum[dfs(x+dx[i],y+dy[i])]++;
  if(sum[3])return 3;
  if(sum[0]&&sum[1])return 3;
  if(sum[0])return 0;
  if(sum[1])return 1;
  return 2;
}

int dfs2(int x,int y){
  if(x<0||y<0||x==h||y==w)return 0;
  if(used2[x][y])return 0;
  if(ma[x][y]!='.')return 0;
  used2[x][y]=1;
  int sum=1;
  for(int i=0;i<4;i++)sum+=dfs2(x+dx[i],y+dy[i]);
  return sum;
}

int main(){
  while(cin>>w>>h,w+h){
    memset(used,0,sizeof(used));
    memset(used2,0,sizeof(used2));
    for(int i=0;i<h;i++)
      for(int j=0;j<w;j++)
	cin>>ma[i][j];
    int ans[2]={};
    for(int i=0;i<h;i++)
      for(int j=0;j<w;j++)
	if(used[i][j]==0&&ma[i][j]=='.'){
	  int t=dfs(i,j);
	  if(t==0||t==1)ans[t]+=dfs2(i,j);
	}
    cout<<ans[1]<<" "<<ans[0]<<endl;
  }
  return 0;
}
