#include <bits/stdc++.h>
using namespace std;
void search(char a[51][51], int c[51][51], int h, int w, int s, int t, int v,
            char p) {
  if (a[s][t] == p) {
    c[s][t] = -v;
    return;
  } else if (a[s][t] != '.' || c[s][t] < 0 || c[s][t] == v) {
    return;
  }
  c[s][t] = (c[s][t] > 0) ? -3 : v;
  if (s > 0) {
    search(a, c, h, w, s - 1, t, v, p);
  }
  if (s < h - 1) {
    search(a, c, h, w, s + 1, t, v, p);
  }
  if (t > 0) {
    search(a, c, h, w, s, t - 1, v, p);
  }
  if (t < w - 1) {
    search(a, c, h, w, s, t + 1, v, p);
  }
  return;
}
void func(char a[51][51], int c[51][51], int h, int w, char p, int s, int t) {
  int v = (p == 'W') ? 1 : 2;
  if (s > 0) {
    search(a, c, h, w, s - 1, t, v, p);
  }
  if (s < h - 1) {
    search(a, c, h, w, s + 1, t, v, p);
  }
  if (t > 0) {
    search(a, c, h, w, s, t - 1, v, p);
  }
  if (t < w - 1) {
    search(a, c, h, w, s, t + 1, v, p);
  }
  return;
}
int main(int argc, char **argv) {
  int w, h, c[51][51], cw, cb;
  char a[51][51];
  while (1) {
    cin >> w >> h;
    if (w == 0 && h == 0) {
      break;
    }
    fill(&c[0][0], &c[h][w], 0);
    for (int i = 0; i < h; i++) {
      scanf("%s", a[i]);
    }
    cw = cb = 0;
    for (int i = 0; i < h; i++) {
      for (int j = 0; j < w; j++) {
        if (c[i][j] == 0 && a[i][j] != '.') {
          func(a, c, h, w, a[i][j], i, j);
        }
      }
    }
    for (int i = 0; i < h; i++) {
      for (int j = 0; j < w; j++) {
        if (c[i][j] == 1) {
          cw++;
        } else if (c[i][j] == 2) {
          cb++;
        }
      }
    }
    cout << cb << " " << cw << endl;
  }
  return 0;
}
