#include <iostream>
#include <cstring>

using namespace std;

int dx[]={0, 0, 1, -1};
int dy[]={1, -1, 0, 0};

int w, h, vis[2][64][64];
char a[64][64];

void rec(int x, int y, bool color){
	
	if(x < 0 || w <= x || y < 0 || h <= y || a[y][x] != '.' || vis[color][y][x])
		return;
	
	vis[color][y][x] = true;
	
	for(int i=0; i<4; ++i){
		rec(x+dx[i], y+dy[i], color);
	}
}
 
int main(){
	
	while(cin>>w>>h, (w||h)){
		
		int sqw=0, sqb=0;
		memset(vis, 0, sizeof(vis));
		
		for(int i=0; i<h; ++i){
			for(int j=0; j<w; ++j){
				cin>>a[i][j];
			}
		}
		
		for(int y=0; y<h; ++y){
			for(int x=0; x<w; ++x){
			
				if(a[y][x]!='.'){
				
					for(int i=0; i<4; ++i){
						rec(x+dx[i], y+dy[i], a[y][x]=='B');
					}
				}
			}
		}
		
		for(int i=0; i<h; ++i){
			for(int j=0; j<w; ++j){
				
				if(vis[0][i][j] ^ vis[1][i][j]){
					
					if(vis[0][i][j])
						sqw++;
					else if(vis[1][i][j])
						sqb++;
				}
			}
		}
		
		cout << sqb << " " << sqw << endl;
	}
	
	return 0;
}