import java.util.*;

public class Main {
    static class Node{
        int x,y;
        public Node(int x, int y) {
            this.x = x;
            this.y = y;
        }
    }
    static int[][] dir = {{0,1},{0,-1},{1,0},{-1,0}};
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int t = input.nextInt();
        for (int i=0;i<t;i++){
            int n = input.nextInt();
            int m = input.nextInt(),g = 0;
            boolean flag = true;
            String[] str = new String[n];
            char[][] ch = new char[n][m];
            for (int j=0;j<n;j++){
                str[j] = input.next();
                for (int k=0;k<m;k++){
                    ch[j][k] = str[j].charAt(k);
                    if (str[j].charAt(k) == 'G') g++;
                }
            }
            for (int j=0;j<n;j++){
                for (int k=0;k<m;k++){
                    if (ch[j][k] == 'B'){
                        for (int l=0;l<4;l++){
                            int fx = j + dir[l][0];
                            int fy = k + dir[l][1];
                            if (fx<0||fx>=n||fy<0||fy>=m) continue;
                            if (ch[fx][fy] == 'G'){
                                flag = false;
                                break;
                            } else if (ch[fx][fy] == '.'){
                                ch[fx][fy] = '#';
                            }
                        }
                    }
                    if (!flag) break;
                }
                if (!flag) break;
            }
            if (!flag || ch[n-1][m-1] == '#') {
                if (g == 0) System.out.println("Yes");
                else System.out.println("No");
            } else {
                ch[n-1][m-1] = '#';
                Queue<Node> queue = new ArrayDeque<>();
                queue.add(new Node(n-1,m-1));
                while (!queue.isEmpty()){
                    Node node = queue.poll();
                    for (int j=0;j<4;j++){
                        int fx = node.x + dir[j][0];
                        int fy = node.y + dir[j][1];
                        if (fx<0||fx>=n||fy<0||fy>=m||ch[fx][fy] == '#') continue;
                        if (ch[fx][fy] == 'G') g--;
                        ch[fx][fy] = '#';
                        queue.add(new Node(fx,fy));
                    }
                }
                if (g == 0) System.out.println("Yes");
                else System.out.println("No");
            }
        }
    }
}