from sys import stdin, stdout
from collections import deque


def main():
    for _ in range(int(stdin.readline())):
        n, m = map(int, stdin.readline().split())
        matrix = []
        for i in range(n):
            matrix.append(list(stdin.readline().strip()))
        counter = 0
        g=0
        for i in range(n):
            for j in range(m):
                if matrix[i][j] == "B":
                    if (j - 1) >= 0:
                        if matrix[i][j - 1] == ".":
                            matrix[i][j - 1] = "#"
                        if matrix[i][j - 1] == "G":
                            counter = 1
                            break
                    if (j + 1) < m:
                        if matrix[i][j + 1] == ".":
                            matrix[i][j + 1] = "#"
                        if matrix[i][j + 1] == "G":
                            counter = 1
                            break
                    if (i - 1) >= 0:
                        if matrix[i - 1][j] == ".":
                            matrix[i - 1][j] = "#"
                        if matrix[i - 1][j] == "G":
                            counter = 1
                            break
                    if (i + 1) < n:
                        if matrix[i + 1][j] == ".":
                            matrix[i + 1][j] = "#"
                        if matrix[i + 1][j] == "G":
                            counter = 1
                            break
                if matrix[i][j]=="G":
                    g+=1
            if counter == 1:
                break
        if counter == 1:
            print("No")
        elif g==0:
            print("Yes")
        else:
            visited = []
            for i in range(n):
                lis = [0 for j in range(m)]
                visited.append(lis)
            flag = 0
            if matrix[n - 1][m - 1] == "#" or matrix[n - 1][m - 1] == "B":
                print("No")
                continue
            qu = deque()
            qu.append((n - 1, m - 1))
            visited[n - 1][m - 1] = 1
            while qu:
                el = qu.popleft()
                if (el[1] - 1) >= 0 and visited[el[0]][el[1]-1]==0:
                    if matrix[el[0]][el[1] - 1] == "." or matrix[el[0]][el[1] - 1] == "G":
                        qu.append((el[0], el[1] - 1))
                        visited[el[0]][el[1] - 1] = 1
                if (el[1] + 1) < m and visited[el[0]][el[1]+1]==0:
                    if matrix[el[0]][el[1] + 1] == "." or matrix[el[0]][el[1] + 1] == "G":
                        qu.append((el[0], el[1] + 1))
                        visited[el[0]][el[1] + 1] = 1
                if (el[0] - 1) >= 0 and visited[el[0]-1][el[1]]==0:
                    if matrix[el[0] - 1][el[1]] == "." or matrix[el[0] - 1][el[1]] == "G":
                        qu.append((el[0] - 1, el[1]))
                        visited[el[0] - 1][el[1]] = 1
                if (el[0] + 1) < n and visited[el[0]+1][el[1]]==0:
                    if matrix[el[0] + 1][el[1]] == "." or matrix[el[0] + 1][el[1]] == "G":
                        qu.append((el[0] + 1, el[1]))
                        visited[el[0] + 1][el[1]] = 1
            #print(visited)
            for i in range(n):
                for j in range(m):
                    if matrix[i][j] == "G" and visited[i][j] == 0:
                        flag = 1
                        break
            if flag:

                print("No")
            else:
                print('Yes')


main()








