# alpha = "abcdefghijklmnopqrstuvwxyz"
# prime = 1000000007#998244353 
# INF = 10000

# from sys import stdout
# from heapq import heappush, heappop
from collections import defaultdict
# from collections import deque 
# import bisect 

# from math import sqrt    
# from math import gcd
# from math import log2

# with open('input.in','r') as Reader:
#     with open('output.out','w') as out:
        # n = int(Reader.readline())

t = int(input())
for test in range(t):
    # n = int(input())
    n, m = list(map(int, input().split()))
    arr = []
    for i in range(n):
        arr.append(list(input()))
    
    err = False
    hasG = False
    hasB = True

    for i in range(n):
        for j in range(m):
            if arr[i][j] == "B":
                hasB = True
                if ((i-1 >= 0 and arr[i-1][j]=="G") or (i+1<n and arr[i+1][j]=="G") or (j-1>=0 and arr[i][j-1]=="G") or (j+1<m and arr[i][j+1]=="G")):
                    err = True
            elif arr[i][j] == "G":
                hasG = True
            elif arr[i][j] == ".":
                if ((i-1 >= 0 and arr[i-1][j]=="B") or (i+1<n and arr[i+1][j]=="B") or (j-1>=0 and arr[i][j-1]=="B") or (j+1<m and arr[i][j+1]=="B")):
                    arr[i][j] = "#"

    if err or (hasG and ((n-2>=0 and arr[n-2][m-1]=="B") or (m-2>=0 and arr[n-1][m-2]=="B"))):
        print("No")
    else:
        ans = True

        visited = [[False for i in range(m)] for i in range(n)]

        q = [(n-1, m-1)]
        while len(q) > 0:
            x, y = q.pop()
            # print("here", x, y)

            if (x-1>=0) and (arr[x-1][y]!="#") and (not visited[x-1][y]):
                visited[x-1][y] = True
                q.append((x-1, y))
            if (y-1>=0) and (arr[x][y-1]!="#") and (not visited[x][y-1]):
                visited[x][y-1] = True
                q.append((x, y-1))
            if (x+1 < n) and (arr[x+1][y]!="#") and (not visited[x+1][y]):
                visited[x+1][y] = True
                q.append((x+1, y))
            if (y+1<m) and (arr[x][y+1]!="#") and (not visited[x][y+1]):
                visited[x][y+1] = True
                q.append((x, y+1))

        for i in range(n):
            for j in range(m):
                if arr[i][j] == "G" and (not visited[i][j]):
                    ans = False
                    break
            if not ans:
                break
        
        if ans:
            print("Yes")
        else:
            print("No")
        


    
