import java.io.*;
import java.util.*;
public class Solution
{
    public static void main(String ag[])
    {
        Scanner sc=new Scanner(System.in);
        int i,j,k;
        int T=sc.nextInt();
        int row[]={1,-1,0,0};
        int col[]={0,0,-1,1};
        
        while(T-- >0)
        {
            int n=sc.nextInt();
            int m=sc.nextInt();
            char adj[][]=new char[n][m];
            for(i=0;i<n;i++)
            {
                String str=sc.next();
                for(j=0;j<m;j++)
                adj[i][j]=str.charAt(j);
            }
            
            for(i=0;i<n;i++)
            {
                for(j=0;j<m;j++)
                {
                    if(adj[i][j]=='B')
                    {
                        for(k=0;k<4;k++)
                        {
                            int dx=i+row[k];
                            int dy=j+col[k];
                            if(isValid(dx,dy,n,m,adj)&&adj[dx][dy]=='.')
                            adj[dx][dy]='#';
                        }
                    }
                }
            }
            
            boolean visited[][]=new boolean[n][m];
            Queue<Pair> q=new LinkedList<>();
            if(adj[n-1][m-1]=='.')
            q.add(new Pair(n-1,m-1));
            visited[n-1][m-1]=true;
            while(!q.isEmpty())
            {
                Pair P=q.poll();
                int x=P.a;
                int y=P.b;
                for(j=0;j<4;j++)
                {
                    int dx=x+row[j];
                    int dy=y+col[j];
                    if(isValid(dx,dy,n,m,adj)&&adj[dx][dy]!='#'&&!visited[dx][dy])
                    {
                        visited[dx][dy]=true;
                        q.add(new Pair(dx,dy));
                    }
                }
            }
            
            boolean flag=true;
            for(i=0;i<n;i++)
            {
                for(j=0;j<m;j++)
                {
                    if((adj[i][j]=='G'&&!visited[i][j])||(adj[i][j]=='B'&&visited[i][j]))
                    {
                        flag=false;
                        break;
                    }
                }
            }
            if(flag)
            System.out.println("Yes");
            else 
            System.out.println("No");
        }
    }
    public static boolean isValid(int x,int y,int n,int m,char adj[][])
    {
        if(x>=0&&x<n&&y>=0&&y<m)
        return true;
        return false;
    }
}
class Pair 
{
    int a,b;
    Pair(int x,int y)
    {
        a=x;
        b=y;
    }
}