#include <bits/stdc++.h>
using namespace std;
template <class x>
x gcd(x a, x b) {
  return (b == 0) ? a : gcd(b, a % b);
}
template <class x>
x powerm(x a, x n) {
  if (n == 0) return 1;
  x b = powerm(a, n / 2) % 1000000007;
  return (n & 1) ? ((b * b) % 1000000007 * a) % 1000000007
                 : (b * b) % 1000000007;
}
const int cnst = 5001;
bool vis[51][51];
bool dfs(string a[], int n, int m, int i, int j, int &good) {
  if (i < 0 || i >= n || j < 0 || j >= m || a[i][j] == '#' || vis[i][j])
    return 1;
  vis[i][j] = 1;
  if (a[i][j] == 'B') return 0;
  if (a[i][j] == 'G') good++;
  if (dfs(a, n, m, i + 1, j, good) == 0) return 0;
  if (dfs(a, n, m, i - 1, j, good) == 0) return 0;
  if (dfs(a, n, m, i, j + 1, good) == 0) return 0;
  if (dfs(a, n, m, i, j - 1, good) == 0) return 0;
  return 1;
}
void solve() {
  int n, m;
  cin >> n >> m;
  string a[n];
  for (int i = 0; i <= n - 1; i++) cin >> a[i];
  int good = 0;
  for (int i = 0; i <= n - 1; i++) {
    for (int j = 0; j <= m - 1; j++) {
      if (a[i][j] == 'B') {
        if (i > 0 && a[i - 1][j] == '.') a[i - 1][j] = '#';
        if (i < n - 1 && a[i + 1][j] == '.') a[i + 1][j] = '#';
        if (j > 0 && a[i][j - 1] == '.') a[i][j - 1] = '#';
        if (j < m - 1 && a[i][j + 1] == '.') a[i][j + 1] = '#';
        if (i > 0 && a[i - 1][j] == 'G') {
          cout << "No" << endl;
          return;
        }
        if (i < n - 1 && a[i + 1][j] == 'G') {
          cout << "No" << endl;
          return;
        }
        if (j > 0 && a[i][j - 1] == 'G') {
          cout << "No" << endl;
          return;
        }
        if (j < m - 1 && a[i][j + 1] == 'G') {
          cout << "No" << endl;
          return;
        }
      } else if (a[i][j] == 'G')
        good++;
    }
  }
  if (good == 0) {
    cout << "Yes" << endl;
    return;
  }
  if (a[n - 1][m - 1] == '#') {
    cout << "No" << endl;
    return;
  }
  int Good = 0;
  if (dfs(a, n, m, n - 1, m - 1, Good)) {
    if (Good == good)
      cout << "Yes" << endl;
    else
      cout << "No" << endl;
  } else
    cout << "Yes" << endl;
}
int main() {
  int t = 1;
  cin >> t;
  while (t--) {
    memset(vis, 0, sizeof(vis));
    solve();
  }
}
