import sys
# sys.stdin = open('input.txt', 'r') 
# sys.stdout = open('output.txt', 'w')
 
import math
import collections
from sys import stdin,stdout,setrecursionlimit
import bisect as bs
setrecursionlimit(2**20)
M = 10**9+7
 
T = int(stdin.readline())
# T = 1 

for _ in range(T):
    # n = int(stdin.readline())
    n,m = list(map(int,stdin.readline().split()))
    # a = list(map(int,stdin.readline().split()))
    # b = list(map(int,stdin.readline().split()))
    # q = list(map(int,stdin.readline().split()))
    # b = list(map(int,stdin.readline().split()))
    # s = stdin.readline().strip('\n')
    g = []; vis = []; goods = 0
    for j in range(n):
        g.append([])
        vis.append([False]*(m))
        s = stdin.readline().strip('\n')
        for i in range(m):
            if(s[i] == '#'):
                g[j].append(0)
            if(s[i] == 'G'):
                g[j].append(1)
                goods += 1
            if(s[i] == 'B'):
                g[j].append(-1)
            if(s[i] == '.'):
                g[j].append(2)
    
    for i in range(n):
        for j in range(m):
            if(g[i][j] == -1):
                if(i-1>=0 and g[i-1][j] == 2):
                    g[i-1][j] = 0
                if(i+1<n and g[i+1][j] == 2):
                    g[i+1][j] = 0
                if(j-1>=0 and g[i][j-1] == 2):
                    g[i][j-1] = 0
                if(j+1<m and g[i][j+1] == 2):
                    g[i][j+1] = 0
    if(g[n-1][m-1] == 0):
        if(goods != 0):
            print("No")
            continue 
        else:
            print("Yes")
            continue
    a = [(n-1,m-1)]
    vis[n-1][m-1] = True
    gvis = 0; bvis = 0
    while(a):
        x,y = a.pop()
        if(g[x][y] == 1):
            gvis += 1
        if(g[x][y] == -1):
            bvis += 1
        if(x-1>=0 and g[x-1][y] != 0 and (not vis[x-1][y])):
            vis[x-1][y] = True
            a.append((x-1,y))
        if(x+1<n and g[x+1][y] != 0 and (not vis[x+1][y])):
            vis[x+1][y] = True
            a.append((x+1,y))
        if(y-1>=0 and g[x][y-1] != 0 and (not vis[x][y-1])):
            vis[x][y-1] = True
            a.append((x,y-1))
        if(y+1<m and g[x][y+1] != 0 and (not vis[x][y+1])):
            vis[x][y+1] = True
            a.append((x,y+1))
    if(gvis == goods and bvis == 0):
        print("Yes")
    else:
        print("No")