from random import randint, choice


def dfs():
    used = set()
    st = [(n - 1, m - 1)]
    ans = 0
    while st:
        now = st.pop()
        if now not in used:
            used.add(now)
            now_st = []
            bol = True
            for ism_i in range(-1, 2):
                for ism_j in range(-1, 2):
                    if ism_i == 0 and ism_j != 0 or ism_i != 0 and ism_j == 0:
                        if 0 <= now[0] + ism_i < n and 0 <= now[1] + ism_j < m and (now[0] + ism_i, now[1] + ism_j) not in used:
                            new_now = (now[0] + ism_i, now[1] + ism_j)
                            if mass[new_now[0]][new_now[1]] == "G" or mass[new_now[0]][new_now[1]] == ".":
                                now_st.append(new_now)
                            elif mass[new_now[0]][new_now[1]] == "B":
                                bol = False
            if bol:
                st += now_st
                if mass[now[0]][now[1]] == "G":
                    ans += 1
    return ans


# while True:
#     n = randint(1, 5)
#     m = randint(1, 5)
#     mass = [["" for i in range(m)] for j in range(n)]
#     for i in range(n):
#         for j in range(m):
#             if i == n - 1 and j == m - 1:
#                 mass[i][j] = "."
#             else:
#                 mass[i][j] = choice(["#", ".", "G", "B"])

t = int(input())
for q in range(t):
    n, m = map(int, input().split())
    mass = [list(input()) for j in range(n)]
    sch = 0
    for i in range(n):
        for j in range(m):
            if mass[i][j] == "G":
                sch += 1
    if sch == dfs():
        print("Yes")
    else:
        print("No")
