在对宇宙进行例行探索时,巴尔干航天局(BSA)的成员发现了外星(ET)智能的痕迹。
更具体地说,他们发现了一批矩形金属板,上面刻有外星语言写成的信息。每块金属板包含一个 $n$ 行 $m$ 列的二维字符数组,数组中的每个元素都是一个可打印的 ASCII 字符,其对应的 ASCII 码在 $32 \dots 127$ 范围内。此外,每块金属板上还刻有两个整数,我们将其命名为 $a$ 和 $b$。
在对这些金属板进行研究后,BSA 的专家得出结论:外星人的信息可以通过一个“密码”(即解密并理解信息的密钥)来解密,而这个密码就隐藏在同一块金属板的矩形数组中。
研究人员发现,该密码是信息中的一个大小为 $a$ 行 $b$ 列的矩形子区域,它在数组中恰好出现 $k$ 次($k \ge 3$)。包含该密码的子区域可能会相互重叠。同时已知,金属板中任何其他 $a$ 行 $b$ 列的子区域的出现次数都不会超过 $k - 2$ 次。
例如,如果金属板上的矩形数组大小为 $8 \times 10$(即 $n = 8, m = 10$),密码在板上出现 $5$ 次($k = 5$),且其大小为 $3 \times 3$($a = 3, b = 3$),那么该数组中任何其他 $3 \times 3$ 的子数组的出现次数都不会超过 $3$ 次。
请你编写一个程序,在给定代表外星人信息的矩形数组以及金属板上刻有的整数 $a$ 和 $b$ 的情况下,找出该密码以及它在金属板上出现的所有位置。
输入格式
第一行包含两个整数 $n$ 和 $m$,由空格隔开。
接下来的 $n$ 行,每行包含一个长度为 $m$ 的字符串。第 $i$ 行代表金属板上矩形数组的第 $i$ 行。
最后一行包含两个整数 $a$ 和 $b$,由空格隔开。
输出格式
第一行必须包含两个整数 $a$ 和 $b$,由空格隔开。这两个数应与输入文件中的数值完全相同。
接下来的 $a$ 行,每行应包含一个长度为 $b$ 的字符串,代表你找到的密码。
下一行必须包含整数 $k$,即你在数组中找到的该密码的出现次数。
接下来的 $k$ 行,每行包含两个由空格隔开的整数。这两个数必须代表你找到的密码在数组中每次出现的左上角(行,列)位置。你应该按照行号非递减的顺序输出这些位置对;若行号相同,则按列号递增的顺序输出。
样例
输入样例 1
8 10 qw.aba..f. wq.bab.ff. zx.cdc.K.R c.ababa.es x.babab.Ed j.cdcdcaba yo.k.k.bab opu..l.cdc 3 3
输出样例 1
3 3 aba bab cdc 4 1 4 4 3 4 5 6 8
说明
数组及其中的 4 个密码实例展示如下:
数据范围
$5 \le n, m \le 1000$;$2 \le a \le n$;$2 \le b \le m$;$3 \le k \le 1000$。
行和列的编号从左上角开始,从 $1$ 开始计数。