t = int(input())

for _ in range(t):
    n, m = list(map(int, input().strip().split()))

    matrix = []
    for _ in range(n):
        matrix.append(list(input().strip()))

    
    cant = False
    for i in range(n):
        for j in range(m):
            if matrix[i][j] == "B":
                if i > 0:
                    if matrix[i-1][j] == "G":
                        cant = True
                    elif matrix[i-1][j] != "B":
                        matrix[i-1][j] = "#"
                if j > 0:
                    if matrix[i][j-1] == "G":
                        cant = True
                    elif matrix[i][j-1] != "B":
                        matrix[i][j-1] = "#"
                if i < n-1:
                    if matrix[i+1][j] == "G":
                        cant=True
                    elif matrix[i+1][j] != "B":
                        matrix[i+1][j] = "#"
                if j < m-1:
                    if matrix[i][j+1] == "G":
                        cant=True
                    elif matrix[i][j+1] != "B":
                        matrix[i][j+1] = "#"
    
    tags = [[False] * m for _ in range(n)]
    todo = [(n-1, m-1)]
    while len(todo) > 0:
        newtodo = []
        for a, b in todo:
            if tags[a][b] or matrix[a][b] == "#":
                continue
            tags[a][b] = True
            if a > 0:
                newtodo.append((a-1, b))
            if b > 0:
                newtodo.append((a, b-1))
            if a < n - 1:
                newtodo.append((a+1, b))
            if b < m - 1:
                newtodo.append((a, b+1))
        
        todo = newtodo

    for i in range(n):
        for j in range(m):
            if matrix[i][j] == "G" and tags[i][j] is False:
                cant = True
    
    if cant:
        print("No")
    else:
        print("Yes")