#include <bits/stdc++.h>
using namespace std;
char a[51][51];
int n, m;
bool search(int i, int j, int k, int l) {
  bool f;
  int x;
  if (i > k) {
    int t;
    t = i;
    i = k;
    k = t;
    t = j;
    j = l;
    l = t;
  }
  if (j <= l) {
    f = true;
    for (x = i; x <= k; x++) {
      if (a[x][j] != 'B') {
        f = false;
        break;
      }
    }
    if (f) {
      for (x = j; x <= l; x++) {
        if (a[k][x] != 'B') {
          f = false;
          break;
        }
      }
    }
    if (!f) {
      f = true;
      for (x = i; x <= k; x++) {
        if (a[x][l] != 'B') {
          f = false;
          break;
        }
      }
      if (f) {
        for (x = j; x <= l; x++) {
          if (a[i][x] != 'B') {
            f = false;
            break;
          }
        }
      }
    }
    if (f)
      return true;
    else
      return false;
  } else {
    f = true;
    for (x = i; x <= k; x++) {
      if (a[x][l] != 'B') {
        f = false;
        break;
      }
    }
    if (f) {
      for (x = l; x <= j; x++) {
        if (a[i][x] != 'B') {
          f = false;
          break;
        }
      }
    }
    if (!f) {
      f = true;
      for (x = i; x <= k; x++) {
        if (a[x][j] != 'B') {
          f = false;
          break;
        }
      }
      if (f) {
        for (x = l; x <= j; x++) {
          if (a[k][x] != 'B') {
            f = false;
            break;
          }
        }
      }
    }
    if (f)
      return true;
    else
      return false;
  }
}
int main() {
  int q, w, e, r;
  cin >> n >> m;
  for (q = 1; q <= n; q++) {
    cin >> a[q];
  }
  for (q = 1; q <= n; q++) {
    for (w = 0; w < m; w++) {
      for (e = 1; e <= n; e++) {
        for (r = 0; r < m; r++) {
          if (!(q == e && w == r) && a[q][w] == 'B' && a[e][r] == 'B') {
            if (!search(q, w, e, r)) {
              cout << "NO";
              return 0;
            }
          }
        }
      }
    }
  }
  cout << "YES";
  return 0;
}
