from sys import stdin
input=stdin.readline
import bisect
import math
#i = bisect.bisect_left(a, k)
#list=input().split(maxsplit=1)
for xoxo in range(1):
    #a=[]
    #ans=0
    for _ in range (int(input())):
    #n=int(input()) 
    #ans=[]
        def func (n,m,i,j):
            p=[]
            if i+1 < n :
                p.append([i+1,j])
            if j+1 < m :
                p.append([i,j+1])
            if i!=0:
                p.append([i-1,j])
            if j!=0:
                p.append([i,j-1])
            return p    
        def bfs(g):
            vis=[[0 for i in range(m)] for j in range(n)]
            vis[-1][-1]=1
            q=[[n-1,m-1]]
            it=-1
            while(it < (len(q)-1)):
                it+=1
                x=func(n,m,q[it][0],q[it][1])
                for i in range(len(x)):
                    if g[x[i][0]][x[i][1]]==0 and vis[x[i][0]][x[i][1]]==0:
                        q.append([x[i][0],x[i][1]])
                        vis[x[i][0]][x[i][1]]=1
            t=0
            for i in range(len(q)):
                if a[q[i][0]][q[i][1]]=='G':
                    t+=1      
            return t        
        a=[]
        n,m=map(int, input().split())
        grid=[[0 for i in range(m)] for j in range(n)]
        c=0
        for i in range(n):
            s=input()[:m]
            for j in range(m):
                if s[j]=='#':
                    grid[i][j]=-1
                if s[j]=='G':
                    c+=1
            a.append(s)
        if c==0 and a[n-1][m-1]!='B':
            print('Yes')
        elif a[n-1][m-1]=='#' and c!=0 :
            print('No')
        elif a[n-1][m-1]=='B':
            print('No')
        else:
            ans='Yes'
            for i in range(n):
                if ans=='No':
                    break
                for j in range(m):
                    if ans=='No':
                        break
                    if a[i][j]=='B':
                        x=func(n,m,i,j)
                        for k in range(len(x)):
                            if a[x[k][0]][x[k][1]]=='.':
                                grid[x[k][0]][x[k][1]]=-1
                            if a[x[k][0]][x[k][1]]=='G':
                                ans='No'
                                break
            if ans=='No':
                print(ans)
                continue
            if grid[-1][-1]!=-1:            
                cc=bfs(grid)
                if cc==c:
                    print('Yes')
                else:
                    print('No')
            else:
                print('No')
                    
        
    #a=list(map(int, input().split()))
    