import java.util.*;
import java.io.*;
import java.lang.Math;
import java.util.Random;


public class Solution{

	static int n;
	static int m;
	static char[][] arr;

	static int[] dr = {0,0,1,-1};
	static int[] dc = {1,-1,0,0};



	public static void main(String[] args) throws Exception{

		FastScanner fs = new FastScanner();
		PrintWriter out = new PrintWriter(System.out);

		int t = fs.nextInt();

		while(t-->0){

			n = fs.nextInt();
			m = fs.nextInt();
			arr = new char[n][];

			for(int i=0;i<n;i++){
				arr[i] = fs.next().toCharArray();
			}

			//BLOCKING ALL THE BAD PEOPLE
			for(int i=0;i<n;i++){
				for(int j=0;j<m;j++){
					if(arr[i][j]=='B')
						block(i,j);
				}
			}

			//TRAVERSING THE GRAPH THROUGH BFS
			Queue<int[]> queue = new LinkedList<int[]>();
			boolean[][] visited = new boolean[n][m];

			if(arr[n-1][m-1]=='.')
				queue.add(new int[]{n-1,m-1});
			visited[n-1][m-1] = true;

			while(!queue.isEmpty()){
				int[] a = queue.poll();
				for(int i=0;i<4;i++){
					int x = a[0]+dr[i];
					int y = a[1]+dc[i];
					if(x>=0 && x<n && y>=0 && y<m && !visited[x][y] && arr[x][y]!='#'){
						visited[x][y] = true;
						queue.add(new int[]{x,y});
					}
				}
			}

			boolean ans = true;

			for(int i=0;i<n;i++){
				for(int j=0;j<m;j++){
					if((arr[i][j] == 'G' && !visited[i][j]) || (arr[i][j]=='B' && visited[i][j])){
						ans = false;
						break;
					}
				}
			}
			out.println(ans?"Yes":"No");
		}

		out.close();
		
		
	}


	static void block(int a, int b){
		for(int i=0;i<4;i++){
			int x = a+dr[i];
			int y = b+dc[i];
			if(x>=0 && x<n && y>=0 && y<m && arr[x][y]=='.'){
				arr[x][y] = '#';
			}
		}

	}



	
	

	

	static class FastScanner{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st = new StringTokenizer("");

		public String next(){
			while(!st.hasMoreElements()){
				try{
					st = new StringTokenizer(br.readLine());
				} catch(IOException e){
					e.printStackTrace();
				}
			}
			return st.nextToken();
		}

		public int nextInt(){
			return Integer.parseInt(next());
		}

		public int[] readArray(int n){
			int[] a = new int[n];
			for(int i=0;i<n;i++)
				a[i] = nextInt();
			return a;
		}

		public long nextLong(){
			return Long.parseLong(next());
		}
	}
}