#abc075b. [abc075_b]Minesweeper

[abc075_b]Minesweeper

問題文

H×WH × W のマス目が与えられます。
入力において、全てのマスは文字で表されており、.は空きマス、 # は爆弾マスに対応します。
マス目は HH 個の文字列 S1,...,SHS_1,...,S_H で表されます。
文字列 SiS_ijj 文字目は、マス目の上から ii 番目、左から jj 番目のマスに対応します。(1iH,1jW)(1≦i≦H,1≦j≦W)

イルカは各空きマスの上下左右および斜めの 88 方向で隣接しているマスに爆弾マスが何個あるか気になっています。
そこで、各空きマスに対応する . を、その空きマスの周囲8方向に隣接するマスにおける爆弾マスの個数を表す数字で置き換えることにしました。

以上の規則で置き換えられた後のマス目を出力してください。

制約

  • 1H,W501≦H,W≦50
  • SiS_i#. からなる長さ WW の文字列

入力

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

HH WW S1S_1 :: SHS_H

出力

置き換えられた後のマス目を HH 行の文字列で出力せよ。
ii 行目 に出力する文字列 TiT_i の長さは WW であり、 TiT_ijj 文字目は、置き換えられた後のマス目の上から ii 番目、左から jj 番目のマスに対応させよ。(1iH,1jW)(1≦i≦H,1≦j≦W)


入力例 1

3 5
.....
.#.#.
.....

出力例 1

11211
1#2#1
11211

例として、上から 11 番目、左から 11 番目の空きマスに注目します。
この空きマスの周囲の 88 マスに含まれる爆弾マスは、上から 22 番目、左から 22 番目のマスのみです。 したがって、上から 11 番目、左から 11 番目の空きマスは 1 に置き換えられています。


入力例 2

3 5
#####
#####
#####

出力例 2

#####
#####
#####

空きマスが存在しない場合があります。


入力例 3

6 6
#####.
#.#.##
####.#
.#..#.
#.##..
#.#...

出力例 3

#####3
#8#7##
####5#
4#65#2
#5##21
#4#310