#include<bits/stdc++.h>
using namespace std;

#define REP(i,n) for(int i=0;i<(n);i++)
#define ALL(v) (v).begin(),(v).end()
#define int long long
typedef pair<int,int> P;

//-----------------------------------------------------------------------

int dy[]={-1,0,1,0};
int dx[]={0,-1,0,1};
int w,h;
char M[55][55];

void dfs(int y,int x,bool f){
    REP(i,4){
	int ny=y+dy[i],nx=x+dx[i];
	if(0<=ny && ny<h && 0<=nx && nx<w){
	    if(f && M[ny][nx]=='.') M[ny][nx]='b',dfs(ny,nx,true);
	    if(!f&& M[ny][nx]=='.') M[ny][nx]='w',dfs(ny,nx,false);
	    if(!f&& M[ny][nx]=='b') M[ny][nx]='x',dfs(ny,nx,false);
	}
    }
}

signed main()
{
    cin.tie(0);
    ios::sync_with_stdio(false);

    while(cin>>w>>h,w)
    {
	REP(i,h) REP(j,w) cin>>M[i][j];
	REP(i,h) REP(j,w){
	    if(M[i][j]=='B') dfs(i,j,true);
	}
	REP(i,h) REP(j,w){
	    if(M[i][j]=='W') dfs(i,j,false);
	}
	int c1=0,c2=0;
	REP(i,h){
	    REP(j,w){   
		if(M[i][j]=='b') c1++;
		if(M[i][j]=='w') c2++;
	    }
	}
	cout<<c1<<" "<<c2<<endl;
    }
}
