#XMOJ11393. 角落游戏

角落游戏

说明

时间限制:1 Sec 内存限制:256 MB 输入文件game.in 输出文件game.out

你凭借解开无数难题的功绩,获得了成为这个国家国王的机会。

条件是:与角落国王直接进行游戏对决并取得胜利。游戏规则如下:

1. 有一个 $H$ 行 $W$ 列的棋盘,部分格子上放有一枚棋子。

   输入字符串 $S_i$ 的第 $j$ 个字符表示棋盘第 $i$ 行、第 $j$ 列的状态:

   - "o":该位置有棋子

   - "-":该位置没有棋子

2. 游戏由角落国王先手,双方轮流操作。

3. 轮到自己时,可以选择以下两种操作之一:

   - 选择一枚棋子,将其向下移动一格 或 向左移动一格。移动目标格子必须为空。

   - 选择一枚棋子,直接从棋盘上移除。

4. 当棋盘上没有棋子、无法进行任何操作时,当前操作的玩家判负。

若双方都采取最优策略,请问你能否获胜(成为国王)?

输入格式

第一行一个整数 $T$ 表示测试数据的组数。

每组测试数据的第一行两个整数 $H$ 和 $W$。

接下来 $H$ 行,第 $i$ 行一个长度为 $W$ 的字符串 $S_i$,第 $j$ 个字符表示棋盘第 $i$ 行、第 $j$ 列的状态,含义如题面所述。

输出格式

输出 $T$ 行,每组测试数据一行。如果你能获胜,输出 YES;否则输出 NO。

样例

样例 1

1
3 3
---
-o-
-o-

YES

样例说明:

如果国王移除一枚棋子,你也移除另一枚即可获胜。

如果国王将一枚棋子向左移动,你也移动另一枚即可;此时国王下一回合只能移除棋子,你再移除剩余棋子即可获胜。

样例 2

1
2 3
o-o
o--

NO

样例说明:

无论你怎么操作,都无法获胜。

样例 3

1
5 49
-ooooo--o---o---oooo----o----oooo---o---o----o---
-o------oo--o-----o----o-o---o---o--oo-oo---o-o--
-oooo---o-o-o-----o---o---o--oooo---o-o-o--o---o-
-o------o--oo--o--o---ooooo--o------o---o--ooooo-
-ooooo--o---o---oo----o---o--o------o---o--o---o-

YES

数据范围

对于 32% 的数据,$H,W \le 10$。

对于 100% 的数据,$1 \le T \le 5$,$1 \le H,W \le 200$,$|S_i| = W$,$S_i$ 仅由 "o" 和 "-" 组成。