#include <bits/stdc++.h>
using namespace std;
char a[51][51];
int w, h, bcount, wcount;
void white(int i, int j) {
  if (a[i - 1][j] == 'B' && i - 1 >= 0) {
    a[i][j] = 'n';
    return;
  } else if (a[i + 1][j] == 'B' && i + 1 < h) {
    a[i][j] = 'n';
    return;
  } else if (a[i][j - 1] == 'B' && j - 1 >= 0) {
    a[i][j] = 'n';
    return;
  } else if (a[i][j + 1] == 'B' && j + 1 < w) {
    a[i][j] = 'n';
    return;
  }
  if (a[i - 1][j] == '.' && i - 1 >= 0) {
    a[i - 1][j] = 'w';
    white(i - 1, j);
  }
  if (a[i + 1][j] == '.' && i + 1 < h) {
    a[i + 1][j] = 'w';
    white(i + 1, j);
  }
  if (a[i][j - 1] == '.' && j - 1 >= 0) {
    a[i][j - 1] = 'w';
    white(i, j - 1);
  }
  if (a[i][j + 1] == '.' && j + 1 < w) {
    a[i][j + 1] = 'w';
    white(i, j + 1);
  }
}
void black(int i, int j) {
  if (a[i - 1][j] == 'W' && i - 1 >= 0) {
    a[i][j] = 'n';
    return;
  } else if (a[i + 1][j] == 'W' && i + 1 < h) {
    a[i][j] = 'n';
    return;
  } else if (a[i][j - 1] == 'W' && j - 1 >= 0) {
    a[i][j] = 'n';
    return;
  } else if (a[i][j + 1] == 'W' && j + 1 < w) {
    a[i][j] = 'n';
    return;
  }
  if (a[i - 1][j] == '.' && i - 1 >= 0) {
    a[i - 1][j] = 'b';
    black(i - 1, j);
  }
  if (a[i + 1][j] == '.' && i + 1 < h) {
    a[i + 1][j] = 'b';
    black(i + 1, j);
  }
  if (a[i][j - 1] == '.' && j - 1 >= 0) {
    a[i][j - 1] = 'b';
    black(i, j - 1);
  }
  if (a[i][j + 1] == '.' && j + 1 < w) {
    a[i][j + 1] = 'b';
    black(i, j + 1);
  }
}
void none(int i, int j) {
  if (a[i - 1][j] == 'w' && i - 1 >= 0) {
    a[i - 1][j] = 'n';
    none(i - 1, j);
  }
  if (a[i + 1][j] == 'w' && i + 1 < h) {
    a[i + 1][j] = 'n';
    none(i + 1, j);
  }
  if (a[i][j - 1] == 'w' && j - 1 >= 0) {
    a[i][j - 1] = 'n';
    none(i, j - 1);
  }
  if (a[i][j + 1] == 'w' && j + 1 < w) {
    a[i][j + 1] = 'n';
    none(i, j + 1);
  }
  if (a[i - 1][j] == 'b' && i - 1 >= 0) {
    a[i - 1][j] = 'n';
    none(i - 1, j);
  }
  if (a[i + 1][j] == 'b' && i + 1 < h) {
    a[i + 1][j] = 'n';
    none(i + 1, j);
  }
  if (a[i][j - 1] == 'b' && j - 1 >= 0) {
    a[i][j - 1] = 'n';
    none(i, j - 1);
  }
  if (a[i][j + 1] == 'b' && j + 1 < w) {
    a[i][j + 1] = 'n';
    none(i, j + 1);
  }
}
void check() {
  for (int i = 0; i < h; i++) {
    for (int j = 0; j < w; j++) {
      if (a[i][j] == 'W') {
        if (a[i - 1][j] == '.' && i - 1 >= 0) {
          a[i - 1][j] = 'w';
          white(i - 1, j);
        }
        if (a[i + 1][j] == '.' && i + 1 < h) {
          a[i + 1][j] = 'w';
          white(i + 1, j);
        }
        if (a[i][j - 1] == '.' && j - 1 >= 0) {
          a[i][j - 1] = 'w';
          white(i, j - 1);
        }
        if (a[i][j + 1] == '.' && j + 1 < w) {
          a[i][j + 1] = 'w';
          white(i, j + 1);
        }
      } else if (a[i][j] == 'B') {
        if (a[i - 1][j] == '.' && i - 1 >= 0) {
          a[i - 1][j] = 'b';
          black(i - 1, j);
        }
        if (a[i + 1][j] == '.' && i + 1 < h) {
          a[i + 1][j] = 'b';
          black(i + 1, j);
        }
        if (a[i][j - 1] == '.' && j - 1 >= 0) {
          a[i][j - 1] = 'b';
          black(i, j - 1);
        }
        if (a[i][j + 1] == '.' && j + 1 < w) {
          a[i][j + 1] = 'b';
          black(i, j + 1);
        }
      }
    }
  }
  for (int i = 0; i < h; i++) {
    for (int j = 0; j < w; j++) {
      if (a[i][j] == 'n') {
        none(i, j);
      }
    }
  }
}
int main() {
  while (1) {
    cin >> h >> w;
    if (h == 0) break;
    bcount = wcount = 0;
    for (int i = 0; i < h; i++) {
      for (int j = 0; j < w; j++) {
        cin >> a[i][j];
      }
    }
    check();
    for (int i = 0; i < h; i++) {
      for (int j = 0; j < w; j++) {
        if (a[i][j] == 'w') wcount++;
        if (a[i][j] == 'b') bcount++;
      }
    }
    cout << bcount << " " << wcount << endl;
  }
  return 0;
}
