#include <stdio.h>
#include <string.h>
#define HMAX 50
#define WMAX 50
int dx[4]={1,-1,0,0};
int dy[4]={0,0,1,-1};
char L[HMAX][WMAX];
int w,h;

void dfsW(int y, int x){
  if (L[y][x]=='.')
    L[y][x]='P';
  for (int i=0;i<4;i++){
    int mx=x+dx[i];
    int my=y+dy[i];
    if ((0<=mx && mx<w) && (0<=my && my<h) && (L[my][mx]=='.'))
      dfsW(my,mx);
  }  
}

void dfsB(int y, int x){
  if (L[y][x]=='.')
    L[y][x]='Q';
  else if (L[y][x]=='P')
    L[y][x]='N';
  for (int i=0;i<4;i++){
    int mx=x+dx[i];
    int my=y+dy[i];
    if ((0<=mx && mx<w) && (0<=my && my<h) && (L[my][mx]=='.' || L[my][mx]=='P'))
      dfsB(my,mx);
  }  
}

int main(){
  while (true){
    scanf("%d %d",&w,&h);
    if (w==0 && h==0) return 0;
    for (int i=0;i<h;i++)
      scanf("%s",L[i]);
    for (int i=0;i<h;i++){
      for (int j=0;j<w;j++)
	if (L[i][j]=='W')
	  dfsW(i,j);
    }
    for (int i=0;i<h;i++){
      for (int j=0;j<w;j++)
	if (L[i][j]=='B')
	  dfsB(i,j);
    }
    int cntB=0,cntW=0;
    for (int i=0;i<h;i++){
      for (int j=0;j<w;j++)
	if (L[i][j]=='P')
	  cntW++;
	else if (L[i][j]=='Q')
	  cntB++;
    }
    printf("%d %d\n",cntB,cntW);
  }
}