不围棋

题目背景

「不围棋」是一种非常有趣的棋类游戏。 大家都知道,围棋的「气」是指一个棋子所在的联通块相邻的空格。两粒棋如果在棋盘上线段的两端就认为是相邻的,也就是在同一个连通块里。比如在图中,白子为四个独立的连通块,黑子构成一个连通块,绿色点是黑子连通块唯一的「气」: ![](https://cdn.luogu.com.cn/upload/pic/41011.png ) 「提子」是指将没有「气」的棋子提出棋盘,在上图中,如果白方走绿点,那么就可以将黑子全部提走。 在围棋中,我们想尽量多地占领地盘、提走对方棋子。然而,不围棋恰恰相反——不围棋是一种非常和平的游戏,双方的走子不能产生任何提子,也就是说,**任何一次走子不能让棋盘上任何一个棋子所在的连通块没有气**。比如,白方在上图中不能走绿点。 在你的某一步棋后,对方无棋可走,那么你就赢了。

题目描述

小 F 对不围棋特别感兴趣,不过他经常输,所以他想做出一个 AI 来替他完成这局游戏。 不过造 AI 实在是太困难啦,小 F 千辛万苦写出来的 AI 被同学们的 AI 锤爆啦! 现在,他想请你帮他实现一个 AI 中一部分的功能——随机模拟,因为他相信你写的程序非常优秀,一定能优化他的 AI。 给你一个 $n \times n$ 的棋盘,上面或许已经有一些棋子了,但此时局面一定是合法的,即**不存在没有气的连通块**;此时轮到黑棋下棋,因此棋盘上**黑白棋子的数量一定是相等的**。 你的任务是,**依次**为黑棋和白棋**随意**指定一个可行的走子位置,直到某一步游戏无法进行,决出胜负为止。 在正式的不围棋比赛还存在一些禁手规则。不过由于小 F 玩的是一种棋盘大小可变的新型不围棋,我们只用考虑上面提到的气的规则就好。

输入输出格式

输入格式


输入一行一个整数 $n$,表示棋盘大小。 输入接下来 $n$ 行,每行有一个长度为 $n$ 的字符串,表示第 $i$ 行的情况。 * `.` 表示空 * `X` 表示黑棋 * `O` 表示白棋 详细请参考样例。 输入保证,棋盘初始局面合法,`X` 与 `O` 数量相等。

输出格式


你需要输出至少一行,假设你输出了 $L$ 行,那么对于前 $L - 1$ 行,你应该输出两个用空格分隔的正整数表示下棋坐标 $x_i, y_i$,其中奇数行表示黑棋的行动,偶数行表示白棋的行动。$x$ 坐标为从上到下从 $1$ 到 $n$,$y$ 坐标为从左到右从 $1$ 到 $n$。 请在第 $L$ 行输出 `-1 -1`,表示此时第 $L$ 手执棋人已经无棋可走。 你的输出可能会很大,即使本题时限为 $3s$,也请你不要使用太慢的方法输出大量内容。 #### 评分方式: 本题启用 Special Judge,并且有部分分。我们将通过以下方式进行计分: * 如果你输出格式错误,那么该测试点不得分。格式错误包括但不限于:输出了非数字内容;一行输出了超过或者少于两个正整数;输出的坐标在棋盘外;最后一行的输出不是 `-1 -1`。 * 如果你的输出格式正确,但是你的输出的第一行的答案就是不可接受的,那么该测试点不得分。例如:输出的坐标是黑棋不可以下的位置;黑棋有棋可走却输出了 `-1 -1`。 * 如果你的输出格式正确,并且你的前 $k(1 \leq k <L)$ 行输出是可以接受的,那么该测试点将至少得到 $s$ 分,其中 $s = \lfloor \lg k \rfloor + 1$,含义是 $k$ 在十进制表示下是一个 $s$ 位数。 * 如果你的输出完全正确,无论你输出了多少行,你都将得到 $10$ 分。 详情请参考样例解释。

输入输出样例

输入样例 #1

3
XXX
OOX
OO.

输出样例 #1

-1 -1

输入样例 #2

3
XOO
XO.
X..

输出样例 #2

2 3
-1 -1

说明

#### 样例 1 解释: 注意到将棋盘下满会让棋盘上所有连通块都没有气,所以黑棋是无棋可走的。 #### 样例 2 解释: 样例 2 还有两个正确的输出是这样的: ``` 3 2 2 3 -1 -1 ``` ``` 3 3 2 3 -1 -1 ``` 我们将棋盘表示出来: ![](https://cdn.luogu.com.cn/upload/pic/41216.png) 其中,黑棋是三个空格都可以走的。 * 如果黑棋走 $(2, 3)$,如图,此时白棋走任何位置都会提走相邻的黑棋,白棋无棋可走; ![](https://cdn.luogu.com.cn/upload/pic/41219.png) * 如果黑棋走 $(3, 2)$,如图,此时白棋唯一可走的点是 $(2, 3)$,之后黑棋无棋可走; ![](https://cdn.luogu.com.cn/upload/pic/41218.png) * 如果黑棋走 $(3, 3)$,如图,此时白棋唯一可走的点是 $(2, 3)$,之后黑棋无棋可走; ![](https://cdn.luogu.com.cn/upload/pic/41217.png) 这三种情况依次对应三个输出,输出任意一种可得到满分。 #### 评分规则解释: 为了解释评分规则,我们以样例 2 为例,对于以下几种输出: ``` I AK IOI ``` 很不幸,因为您太强了,所以为了按住躁动的您,我们会给您 $0$ 分。 ``` -1 -1 ``` ``` 1 1 -1 -1 ``` 很不幸,你的第一行没有输出正确,得 $0$ 分。 ``` 3 3 -1 -1 ``` 你输出的前 $1$ 行是正确方案的一部分。由于 $1$ 是 $1$ 位数,恭喜你得到了整整 $1$ 分! #### 数据范围: ![](https://cdn.luogu.com.cn/upload/pic/41855.png)