#include <bits/stdc++.h>
using namespace std;
int counter1, counter2;
int w, h;
int x, y;
char map[50][50];
void serch_w(int x, int y);
void serch_b(int x, int y);
int main() {
  while (cin >> w >> h, w && h) {
    counter1 = 0;
    counter2 = 0;
    for (int i = 0; i < h; i++) {
      for (int j = 0; j < w; j++) {
        cin >> map[i][j];
      }
    }
    for (int i = 0; i < h; i++) {
      for (int j = 0; j < w; j++) {
        if (map[i][j] == 'W') {
          x = i;
          y = j;
          serch_w(x, y);
        }
      }
    }
    for (int i = 0; i < h; i++) {
      for (int j = 0; j < w; j++) {
        if (map[i][j] == 'B') {
          x = i;
          y = j;
          serch_b(x, y);
        }
      }
    }
    for (int i = 0; i < h; i++) {
      for (int j = 0; j < w; j++) {
        cout << map[i][j];
      }
      cout << endl;
    }
    for (int i = 0; i < h; i++) {
      for (int j = 0; j < w; j++) {
        if (map[i][j] == '2') counter1++;
        if (map[i][j] == '1') counter2++;
      }
    }
    cout << counter2 << " " << counter1 << endl;
  }
  return 0;
}
void serch_w(int x, int y) {
  if (x + 1 < h && map[x + 1][y] == '.' && map[x + 1][y] != '2') {
    map[x + 1][y] = '2';
    serch_w(x + 1, y);
  }
  if (y + 1 < w && map[x][y + 1] == '.' && map[x][y + 1] != '2') {
    map[x][y + 1] = '2';
    serch_w(x, y + 1);
  }
  if (x - 1 >= 0 && map[x - 1][y] == '.' && map[x - 1][y] != '2') {
    map[x - 1][y] = '2';
    serch_w(x - 1, y);
  }
  if (y - 1 >= 0 && map[x][y - 1] == '.' && map[x][y - 1] != '2') {
    map[x][y - 1] = '2';
    serch_w(x, y - 1);
  }
}
void serch_b(int x, int y) {
  if (x + 1 < h && map[x + 1][y] == '.') {
    map[x + 1][y] = '1';
    serch_b(x + 1, y);
  } else if (x + 1 < h && map[x + 1][y] == '2') {
    map[x + 1][y] = '3';
    serch_b(x + 1, y);
  }
  if (y + 1 < w && map[x][y + 1] == '.') {
    map[x][y + 1] = '1';
    serch_b(x, y + 1);
  } else if (y + 1 < w && map[x][y + 1] == '2') {
    map[x][y + 1] = '3';
    serch_b(x, y + 1);
  }
  if (x - 1 >= 0 && map[x - 1][y] == '.') {
    map[x - 1][y] = '1';
    serch_b(x - 1, y);
  } else if (x - 1 >= 0 && map[x - 1][y] == '2') {
    map[x - 1][y] = '3';
    serch_b(x - 1, y);
  }
  if (y - 1 >= 0 && map[x][y - 1] == '.') {
    map[x][y - 1] = '1';
    serch_b(x, y - 1);
  } else if (y - 1 >= 0 && map[x][y - 1] == '2') {
    map[x][y - 1] = '3';
    serch_b(x, y - 1);
  }
}
