一张形状奇特的微型流星照片被上传到了互联网上。在照片中,流星正从极高处坠向凹凸不平的地面。还有一张是在流星坠落后立即拍摄的照片,但不幸丢失了,需要将其重建。
照片被简化并表示为一个字符矩阵。字符 X 表示流星的一部分,字符 # 表示地面的一部分,图像的其余部分(空气)由字符 . 组成。
流星是连通的。换句话说,流星的任意两个部分之间都存在一条路径,该路径仅经过流星,且由上、下、左、右的移动组成。同样,地面的所有部分也以相同的方式连通。
在给定的照片中,流星严格位于地面上方。更具体地说,至少存在一个完全由空气(点)组成的行,流星完全位于该行上方,而地面完全位于该行下方。此外,图像的整个最后一行(最底部一行)都是地面的一部分。
流星垂直向下坠落。当它落到地面上时,它保持了原有的形状,地面也同样保持了原有的形状。请重建流星坠落后的照片!
输入格式
输入第一行包含整数 $R$ 和 $S$($3 \le R, S \le 3000$),表示照片的行数和列数。
接下来的 $R$ 行包含任务中描述的照片。
输出格式
输出流星坠落后所需的照片(尺寸为 $R \times S$)。
样例
输入样例 1
5 6 .XXXX. ...X.. ...... #..### ######
输出样例 1
...... .XXXX. ...X.. #..### ######
输入样例 2
9 7 XXX.XXX X.XXX.X X..X..X X.....X ....... .#...#. .##.##. .#####. #######
输出样例 2
....... ....... ....... ....... XXX.XXX X#XXX#X X##X##X X#####X #######