B - Grid Compression Editorial /

Time Limit: 2 sec / Memory Limit: 1024 MB

配点 : 200

問題文

H 行、横 W 列のマス目があります。 上から i 行目、左から j 列目のマスを (i, j) と表します。 各マスは白または黒です。 マス目の配色は、HW 列の行列 (a_{i, j}) によって与えられます。 a_{i, j}. ならばマス (i, j) は白であり、a_{i, j}# ならばマス (i, j) は黒です。

すぬけ君はこのマス目を圧縮しようとしています。 そのために、白いマスのみからなる行または列が存在する間、次の操作を繰り返し行います。

  • 操作: 白いマスのみからなる行または列をひとつ任意に選び、その行または列を取り除いて空白を詰める。

各操作でどの行または列を選ぶかによらず、最終的なマス目は一意に定まることが示せます。 最終的なマス目を求めてください。

制約

  • 1 \leq H, W \leq 100
  • a_{i, j}. または # である。
  • マス目全体で少なくともひとつは黒いマスが存在する。

入力

入力は以下の形式で標準入力から与えられる。

H W
a_{1, 1}...a_{1, W}
:
a_{H, 1}...a_{H, W}

出力

最終的なマス目を、入力と同様のフォーマットで出力せよ。 ただし、行数および列数は省くこと。 詳しくはサンプルを参照せよ。


入力例 1

4 4
##.#
....
##.#
.#.#

出力例 1

###
###
.##

元のマス目における第 2 行および第 3 列がそれぞれ取り除かれます。


入力例 2

3 3
#..
.#.
..#

出力例 2

#..
.#.
..#

白いマスのみからなる行または列が存在しないので、操作は行われません。


入力例 3

4 5
.....
.....
..#..
.....

出力例 3

#

入力例 4

7 6
......
....#.
.#....
..#...
..#...
......
.#..#.

出力例 4

..#
#..
.#.
.#.
#.#

Score : 200 points

Problem Statement

There is a grid of squares with H horizontal rows and W vertical columns. The square at the i-th row from the top and the j-th column from the left is represented as (i, j). Each square is black or white. The color of the square is given as an H-by-W matrix (a_{i, j}). If a_{i, j} is ., the square (i, j) is white; if a_{i, j} is #, the square (i, j) is black.

Snuke is compressing this grid. He will do so by repeatedly performing the following operation while there is a row or column that consists only of white squares:

  • Operation: choose any one row or column that consists only of white squares, remove it and delete the space between the rows or columns.

It can be shown that the final state of the grid is uniquely determined regardless of what row or column is chosen in each operation. Find the final state of the grid.

Constraints

  • 1 \leq H, W \leq 100
  • a_{i, j} is . or #.
  • There is at least one black square in the whole grid.

Input

Input is given from Standard Input in the following format:

H W
a_{1, 1}...a_{1, W}
:
a_{H, 1}...a_{H, W}

Output

Print the final state of the grid in the same format as input (without the numbers of rows and columns); see the samples for clarity.


Sample Input 1

4 4
##.#
....
##.#
.#.#

Sample Output 1

###
###
.##

The second row and the third column in the original grid will be removed.


Sample Input 2

3 3
#..
.#.
..#

Sample Output 2

#..
.#.
..#

As there is no row or column that consists only of white squares, no operation will be performed.


Sample Input 3

4 5
.....
.....
..#..
.....

Sample Output 3

#

Sample Input 4

7 6
......
....#.
.#....
..#...
..#...
......
.#..#.

Sample Output 4

..#
#..
.#.
.#.
#.#