#CF1966B. 矩形填充

矩形填充

B. 矩形填充

单次测试时间限制11内存限制256256 兆字节

有一个 n×mn \times m 的方格网格,每个方格为白色或黑色。 在一次操作中,你可以选择两个颜色相同的方格,并将它们之间形成的子矩形内的所有方格染成该颜色。

形式化定义: 若选择位置 (x1,y1)(x_1,y_1)(x2,y2)(x_2,y_2),且两者当前颜色均为 cc,则将所有满足 min(x1,x2)xmax(x1,x2)\min(x_1,x_2) \le x \le \max(x_1,x_2)min(y1,y2)ymax(y1,y2)\min(y_1,y_2) \le y \le \max(y_1,y_2) 的方格 (x,y)(x,y) 的颜色设为 cc

下图展示了对一个网格进行两次操作的过程:

请问:执行任意次数操作(包括 00 次)后,是否能让网格中所有方格变成同一种颜色


输入格式

第一行输入一个整数 tt1t1041 \le t \le 10^4),表示测试用例数量。

每个测试用例的描述如下: 1. 第一行包含两个整数 nnmm1n,m5001 \le n,m \le 500),分别表示网格的行数和列数; 2. 接下来 nn 行,每行包含 mm 个字符 W(白色)和 B(黑色),表示网格的初始颜色。

保证:所有测试用例的 nmn \cdot m 之和不超过 3×1053 \times 10^5


输出格式

对于每个测试用例,如果能将所有方格染成同一种颜色,输出 YES;否则输出 NO

输出大小写不敏感(例如 yesYesYES 均算正确)。


样例输入

8
2 1
W
B
6 6
WWWWBW
WBWWWW
BBBWWW
BWWWBB
WWBWBB
BBBWBW
1 1
W
2 2
BB
BB
3 4
BWBW
WBWB
BWBW
4 2
BB
BB
WW
WW
4 4
WWBW
BBWB
WWBB
BBBB
1 5
WBBWB

样例输出

NO
YES
YES
YES
YES
NO
YES
NO

样例说明

  1. 第一个样例:永远无法通过操作改变任何方格的颜色,因此输出 NO
  2. 第二个样例:如图所示,两次操作后可将所有方格染成白色,因此输出 YES
  3. 第三、四个样例:初始时所有方格已经是同色,直接输出 YES
  4. 第五个样例:两次操作即可将所有方格染成白色。