P1090

Piece it together

Piece it together

给定一个由 B、W 和 . 组成的字符矩阵。你需要判断能否使用若干个互不重叠的 L 形三格骨牌,恰好覆盖矩阵中的所有 B 格和 W 格。

每个骨牌占据 33 个格子:拐角格必须为 B,另外两个格子必须为 W。其中一个 W 格与 B 格水平相邻,另一个 W 格与 B 格竖直相邻。骨牌可以旋转,因此水平相邻的 W 格可以位于 B 格的左侧或右侧,竖直相邻的 W 格可以位于 B 格的上方或下方。

每个 B 格和 W 格都必须恰好被一个骨牌覆盖。骨牌之间不能重叠,也不能覆盖 . 格。

输入格式

第一行包含一个整数 TT,表示测试用例的数量。

对于每个测试用例,第一行包含两个整数 nn 和 mm,分别表示矩阵的行数和列数。

接下来 nn 行,每行包含一个长度为 mm 的字符串,字符串仅由 B、W 和 . 组成。

输出格式

对于每个测试用例输出一行。如果能够按要求完成覆盖,输出 YES;否则输出 NO。

样例输入

2
3 4
BWW.
WWBW
..WB
3 3
W..
BW.
WBW

样例输出

YES
NO

数据范围

  • 1≤T≤1001\le T\le 100;
  • 1≤n,m≤5001\le n,m\le 500;
  • B 表示黑色格,W 表示白色格,. 表示空格。

来源与许可

本题题面与测试数据整理自 BZOJ。

样例 1

输入

2
3 4
BWW.
WWBW
..WB
3 3
W..
BW.
WBW

输出

YES
NO