import math as mt 
import sys,string
input=sys.stdin.readline
#print=sys.stdout.write
#import random
from collections import defaultdict
from heapq import heappush,heapify,heappop
L=lambda : list(map(int,input().split()))
Ls=lambda : list(input().split())
M=lambda : map(int,input().split())
I=lambda :int(input())


t=I()
for _ in range(t):
    n,m=M()
    v=defaultdict(int)
    l=[]
    c=0
    f=1
    for j in range(n):
        s=input().strip()
        s=list(s)
        x=0
        for i in range(m):
            if(s[i]=='G'):
                c+=1
            if(s[i]=='B'):
                if(i<m-1):
                    if(s[i+1]=='.'):
                        s[i+1]='#'
                    if(s[i+1]=='G'):
                        f=0
                if(i>0):
                    if(s[i-1]=='.'):
                        s[i-1]='#'
                    if(s[i-1]=='G'):
                        f=0
            if(len(l)>0):
                if(l[-1][i]=='B' and s[i]=='.'):
                    s[i]='#'
                if(l[-1][i]=='B' and s[i]=='G'):
                    f=0
                if(s[i]=='B' and l[-1][i]=='.'):
                   l[-1][i]='#'
                if(l[-1][i]=='G' and s[i]=='B'):
                    f=0
        
        l.append(s)
        #print(c,"DFDF")
    if(f==0):
        print("No")
    else:
        if(c==0):
            print("Yes")
        else:
            if(l[n-1][m-1]=='#'):
                print("No")
            else:
                q=[(n-1,m-1)]
                v[(q[0][0],q[0][1])]=1
                while(len(q)!=0):
                    i=q[0][0]
                    j=q[0][1]
                    g=[]
                    if(i>0):
                        g.append((i-1,j))
                    if(i<n-1):
                        g.append((i+1,j))
                    if(j>0):
                        g.append((i,j-1))
                    if(j<m-1):
                        g.append((i,j+1))

                    for k in g:
                        #print(k)
                        if(v[k]==0):
                            v[k]=1
                            if(l[k[0]][k[1]]=='G'):
                                c-=1
                                if(c==0):
                                    f=0
                                    break
                                q.append((k[0],k[1]))
                            elif(l[k[0]][k[1]]=='.'):
                                q.append((k[0],k[1]))
                    if(f==0):
                        break
                    q=q[1::]
                if(f):
                    print("No")
                else:
                    print("Yes")


