#include <bits/stdc++.h>
using namespace std;
signed main() {
  ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
  long long t;
  cin >> t;
  while (t--) {
    long long n, m;
    cin >> n >> m;
    vector<vector<long long> > q(n, vector<long long>(m));
    char a;
    vector<pair<long long, long long> > to;
    vector<pair<long long, long long> > b;
    for (long long i = 0; i < n; i++) {
      for (long long j = 0; j < m; ++j) {
        cin >> a;
        if (a == '.')
          q[i][j] = 0;
        else if (a == '#')
          q[i][j] = 1;
        else if (a == 'B')
          q[i][j] = 2, b.push_back({i, j});
        else if (a == 'G')
          q[i][j] = 3, to.push_back({i, j});
      }
    }
    bool fl = false;
    for (auto &i : to) {
      if ((i.first - 1 >= 0 && q[i.first - 1][i.second] == 2) ||
          (i.first + 1 < n && q[i.first + 1][i.second] == 2) ||
          (i.second - 1 >= 0 && q[i.first][i.second - 1] == 2) ||
          (i.second + 1 < m && q[i.first][i.second + 1] == 2)) {
        cout << "No\n", fl = true;
        break;
      }
    }
    if (!fl && to.size() > 0 &&
        ((n > 1 && q[n - 2][m - 1] == 2) || (m > 1 && q[n - 1][m - 2] == 2)))
      cout << "No\n", fl = true;
    if (!fl) {
      for (auto &i : b) {
        if (i.first - 1 >= 0) q[i.first - 1][i.second] = 1;
        if (i.first + 1 < n) q[i.first + 1][i.second] = 1;
        if (i.second - 1 >= 0) q[i.first][i.second - 1] = 1;
        if (i.second + 1 < m) q[i.first][i.second + 1] = 1;
      }
      q[n - 1][m - 1] = 4;
      queue<pair<long long, long long> > d;
      d.push({n - 1, m - 1});
      while (d.size()) {
        pair<long long, long long> i = d.front();
        d.pop();
        if (i.first - 1 >= 0 && q[i.first - 1][i.second] != 4 &&
            q[i.first - 1][i.second] != 1)
          q[i.first - 1][i.second] = 4, d.push({i.first - 1, i.second});
        if (i.first + 1 < n && q[i.first + 1][i.second] != 4 &&
            q[i.first + 1][i.second] != 1)
          q[i.first + 1][i.second] = 4, d.push({i.first + 1, i.second});
        if (i.second - 1 >= 0 && q[i.first][i.second - 1] != 4 &&
            q[i.first][i.second - 1] != 1)
          q[i.first][i.second - 1] = 4, d.push({i.first, i.second - 1});
        if (i.second + 1 < m && q[i.first][i.second + 1] != 4 &&
            q[i.first][i.second + 1] != 1)
          q[i.first][i.second + 1] = 4, d.push({i.first, i.second + 1});
      }
      for (auto &i : to)
        if (q[i.first][i.second] != 4) fl = true;
      if (fl)
        cout << "No\n";
      else
        cout << "Yes\n";
    }
  }
  return 0;
}
