#include <bits/stdc++.h>
using namespace std;
int gcd(int a, int b) {
  if (a == 0)
    return 0;
  else
    return (b == 0) ? a : gcd(b, a % b);
}
int vis[55][55], p[][2] = {{0, 1}, {0, -1}, {1, 0}, {-1, 0}};
int cn[55][55] = {0}, n, m;
vector<pair<int, int> > v1, v2;
void dfs(int x, int y) {
  if (vis[x][y] == 1) return;
  int i, j;
  for (i = 0; i < 4; i++) {
    int dx = x + p[i][0], dy = y + p[i][1];
    if (vis[dx][dy] != 1 && !cn[dx][dy]) {
      cn[dx][dy] = 1;
      dfs(dx, dy);
    }
  }
  return;
}
int main() {
  std::ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
  int t, i;
  cin >> t;
  while (t--) {
    string s;
    memset(cn, 0, sizeof(cn));
    v1.clear(), v2.clear();
    int j, ng = 0, mark1, mark2;
    cin >> n >> m;
    for (i = 0; i < n + 2; i++) vis[i][0] = vis[i][m + 1] = 1;
    for (j = 0; j < m + 2; j++) vis[0][j] = vis[n + 1][j] = 1;
    for (i = 0; i < n; i++) {
      cin >> s;
      for (j = 0; j < m; j++) {
        if (s[j] == '#')
          vis[i + 1][j + 1] = 1;
        else if (s[j] == 'G') {
          ng++;
          vis[i + 1][j + 1] = 2;
          v1.push_back({i + 1, j + 1});
        } else if (s[j] == 'B') {
          vis[i + 1][j + 1] = 3;
          v2.push_back({i + 1, j + 1});
        } else
          vis[i + 1][j + 1] = 0;
      }
    }
    if (ng == 0)
      cout << "Yes" << endl;
    else {
      if (vis[n - 1][m] == 3 || vis[n][m - 1] == 3)
        cout << "No" << endl;
      else {
        for (i = 0; i < v2.size(); i++) {
          for (int c = 0; c < 4; c++) {
            int dx = p[c][0] + v2[i].first, dy = p[c][1] + v2[i].second;
            if (vis[dx][dy] == 0) vis[dx][dy] = 1;
          }
        }
        dfs(n, m);
        mark1 = 0;
        for (i = 0; i < v1.size(); i++) {
          if (cn[v1[i].first][v1[i].second] != 1) {
            mark1 = 1;
            break;
          }
        }
        mark2 = 0;
        for (i = 0; i < v2.size(); i++) {
          if (cn[v2[i].first][v2[i].second] == 1) {
            mark2 = 1;
            break;
          }
        }
        if (mark1 == 0 && mark2 == 0)
          cout << "Yes" << endl;
        else
          cout << "No" << endl;
      }
    }
  }
  return 0;
}
