#include <bits/stdc++.h>
using namespace std;
bool bfs(string s[], int n, int m, map<pair<int, int>, bool> &vis) {
  if (s[n - 1][m - 1] == '#') return 0;
  queue<pair<int, int> > q;
  q.push({n - 1, m - 1});
  vis[{n - 1, m - 1}] = 1;
  while (!q.empty()) {
    pair<int, int> p = q.front();
    int i = p.first;
    int j = p.second;
    q.pop();
    if (i + 1 < n && s[i + 1][j] != '#' && vis[{i + 1, j}] == 0) {
      vis[{i + 1, j}] = 1;
      q.push({i + 1, j});
    }
    if (i - 1 >= 0 && s[i - 1][j] != '#' && vis[{i - 1, j}] == 0) {
      vis[{i - 1, j}] = 1;
      q.push({i - 1, j});
    }
    if (j - 1 >= 0 && s[i][j - 1] != '#' && vis[{i, j - 1}] == 0) {
      vis[{i, j - 1}] = 1;
      q.push({i, j - 1});
    }
    if (j + 1 < m && s[i][j + 1] != '#' && vis[{i, j + 1}] == 0) {
      vis[{i, j + 1}] = 1;
      q.push({i, j + 1});
    }
  }
  return 1;
}
void solve() {
  int n, m;
  cin >> n >> m;
  int countG = 0;
  string s[n];
  for (int i = 0; i < n; i++) {
    cin >> s[i];
    for (int j = 0; j < m; j++) {
      if (s[i][j] == 'G') countG++;
    }
  }
  if (countG == 0) {
    cout << "Yes" << endl;
    return;
  } else {
    bool f = 0;
    for (int i = 0; i < n; i++) {
      for (int j = 0; j < m; j++) {
        if (s[i][j] == 'B') {
          if (i + 1 < n && s[i + 1][j] != 'B') {
            if (s[i + 1][j] == 'G') f = 1;
            s[i + 1][j] = '#';
          }
          if (i - 1 >= 0 && s[i - 1][j] != 'B') {
            if (s[i - 1][j] == 'G') f = 1;
            s[i - 1][j] = '#';
          }
          if (j + 1 < m && s[i][j + 1] != 'B') {
            if (s[i][j + 1] == 'G') f = 1;
            s[i][j + 1] = '#';
          }
          if (j - 1 >= 0 && s[i][j - 1] != 'B') {
            if (s[i][j - 1] == 'G') f = 1;
            s[i][j - 1] = '#';
          }
        }
      }
    }
    if (f) {
      cout << "No" << endl;
      return;
    }
    map<pair<int, int>, bool> vis;
    if (!bfs(s, n, m, vis)) {
      cout << "No" << endl;
      return;
    }
    for (int i = 0; i < n; i++) {
      for (int j = 0; j < m; j++) {
        if (s[i][j] == 'G' && vis[{i, j}] == 0) {
          cout << "No" << endl;
          return;
        }
      }
    }
    cout << "Yes" << endl;
    return;
  }
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  int t = 1;
  cin >> t;
  while (t--) {
    solve();
  }
  return 0;
}
