def yn(arr,n,m):
    for i in range(n):
        for j in range(m):
            if(arr[i][j]=="B"):
                if(j-1>=0 and arr[i][j-1]!="G" and arr[i][j-1]!="B" ):
                    arr[i][j-1]="#"
                if(j+1<m and arr[i][j+1]!="G" and arr[i][j+1]!="B" ):
                    arr[i][j+1]="#"
                if(i-1>=0 and arr[i-1][j]!="G" and arr[i-1][j]!="B" ):
                    arr[i-1][j]="#"
                if(i+1<n and arr[i+1][j]!="G" and arr[i+1][j]!="B" ):
                    arr[i+1][j]="#"
                if(j-1>=0 and arr[i][j-1]=="G"):
                    return "No"
                if(j+1<m and arr[i][j+1]=="G"):
                    return "No"
                if(i-1>=0 and arr[i-1][j]=="G"):
                    return "No"
                if(i+1<n and arr[i+1][j]=="G"):
                    return "No"
    return arr
def solve(arr,i,j,n,m):
    if(i<0 or i>n-1 or j>m-1 or j<0 or arr[i][j]=="#" or vis[i][j]==1):
        return
    vis[i][j]=1
    solve(arr,i-1,j,n,m)
    solve(arr,i,j-1,n,m)                
for _ in range(int(input())):
    vis=[[0]*(62) for i in range(62)]
    n,m=map(int,input().split())
    arr=[]
    ng=0
    gc=0
    for i in range(n):
        s=input()
        l=[]
        for j in s:
            if(j=="G"):
                ng+=1
            l.append(j)
        arr.append(l)
    arr2=yn(arr,n,m)
    if arr2=="No":
        print("No")
    else:
        solve(arr2,n-1,m-1,n,m)
        for i in range(n):
            for j in range(m):
                if vis[i][j]==1 and arr2[i][j]=="G":
                    gc+=1
        if(ng==gc):
            print("Yes")
        else:
            print("No")
    

    
    
            