3954: 边界

内存限制:128 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:33 解决:5

题目描述

LazyJazz手上有一个nm的棋盘,并放上了一些棋子。这些棋子组成了一个棋阵,例如下图表示一个45的棋盘上的棋阵,星号(*)表示棋子,句号(.)表示空位;

111.png

LazyJazz定义一个棋子处于棋阵的边界,条件为:它处于棋盘边缘,或存在它的相邻空位处于棋盘边缘,或存在它的相邻空位与棋盘边缘的空位四连通。(白话:没有被其他棋子包围的棋子)

例如上面给出的棋阵,将边界棋子更换为(#)后,如下所示:

222.png

只有一个棋子不在边界上。

若整个5*5的棋盘全部放满棋子,则如下所示:

333.png

现在LazyJazz给你一个棋阵,他希望你能用(#)标记出处于边界的棋子。

输入

第一行包含由空格隔开的两个正整数n、m。

接下来n行,每行包含一个由m个字符组成的字符串,字符只可能为“.”(空位)或“*”(棋盘),表示棋阵的样子。

输出

将边界棋子标记为“#”后输出棋阵。

样例输入 复制

4 5
*.*..
..**.
.**.*
..**.

样例输出 复制

#.#..
..##.
.#*.#
..##.

提示

对于40%的测试数据:n≤2。

对于80%的测试数据:n≤100,m≤100。

对于100%的测试数据:n≤1000,m≤1000。