#OLD574. 龙卷风摧毁停车场(升级版)

龙卷风摧毁停车场(升级版)

Description

继上次龙卷风事故后,政府决定加固一些停车场,龙卷风会破坏其周围(8个方向)的停车场。普通的停车场被影响一次就会被彻底摧毁,加固的停车场被影响一次会退化成普通停车场,被影响两次才能被彻底摧毁

在一个n*m的矩阵中,普通停车场用“#”表示,加固的停车场用“%”表示,龙卷风用“?”表示,退化的停车场用“#”表示。

Format

Input

第 1 行输入两个数字,n和m,代表矩阵的大小(1 \leq n,m $\leq$200)

第 2 行到第 n + 1 行,每行 m 个字符,不同字符携带了不同的信息,代表矩阵里的内容。

“ # ”代表停车场,“ ? ”代表龙卷风,“%”代表加固后的停车场,其余字符代表城市的其他建筑物

注意:龙卷风的影响范围为龙卷风周围的一圈而不是十字。

Output

首先从第一行开始从左到右,如果有安全的停车场(加固的停车场只被破坏了一次也算安全),输出他的二维下标(下标从1开始),直到第n行。每行占一行。

接下来输出龙卷风来之后受灾情况图。

受灾情况图,即:在原受灾图中,如果有停车场处于龙卷风的作用范围内,退化的加固停车场更改成“#”,被彻底摧毁的停车场更改成 “ * ” ;同时对于每一个龙卷风 “ ? ” 更改成能摧毁的停车场的数量。

Samples

3 3
#%#
#?#
#%#
1 2
3 2
*#*
*6*
*#*
4 5
##??#
%k%%%
%##?#
?%d%s
1 1
2 1
3 1
4 2
4 4
#*13*
%k***
#**3*
1#d#s

Hint