CF370D Broken Monitor

题目描述

## 描述 小 A 的电脑显示器坏了,有些像素点一直是黑色的。他最近正在和他的弟弟小 B 玩一个游戏:小 A 控制程序在屏幕上绘制一个 1 像素宽的白色方框,由于显示器已经损坏了,一些应该是白色的像素点仍为黑色。小 B 根据屏幕上显示的内容来推测方框的大小和绘制的位置。你要帮助小 B 自动化这个游戏的过程。写一个程序找到满足条件的方框:(1)方框的宽为 1 像素;(2)方框不会超过屏幕的边缘;(3)屏幕显示的白色像素都在方框上;(4)在满足前三个条件的所有方框中,正确的方框是尺寸最小的那个。方框的尺寸由边长表示,方框边缘的像素不重叠。举例来说,边长为 3 的方框包含 8 个像素,边长为 2 的方框包含 4 个像素,边长为 1 的方框包含 1 个像素。

输入格式

第一行包含两个正整数 n , m (1≤n,m≤2000 ),接下来的 n 行,每行包含 m 个c字符,表示游戏过程中显示器像素的状态。字符 . (ASCII 46)对应黑色像素,字符 w(小写英文字母 w)对应白色像素。保证至少有一个像素是白色像素。

输出格式

输出屏幕上的内容。推测出的方框边缘用 + 表示,原来已经是 w 的白色像素保持不变。如果有多个最小尺寸的方框同时存在,输出任意一个。如果这种方框不存在,输出 −1 。 翻译:Xuorange

说明/提示

In the first sample the required size of the optimal frame equals 4. In the second sample the size of the optimal frame equals 3. In the third sample, the size of the optimal frame is 1. In the fourth sample, the required frame doesn't exist.