AT_s8pc_5_e Broken Skateboard

Description

[problemUrl]: https://atcoder.jp/contests/s8pc-5/tasks/s8pc_5_e E869120 は $ H $ 行 $ W $ 列のマス目から成るスケートリンクに行くことを考えている. 左上のマスは $ (1,\ 1) $ 右下のマスは $ (H,\ W) $ である. スケートリンクは $ 1 $ 個のゴールのマス, いくつかの氷のマス, いくつかのコンクリートのマスから成る. 彼は特定の場所からスタートし, 最短の時間でゴールする予定である. このスケートリンクは, 以下のような性質を持つ. - 氷のマスは滑るので, コンクリートのマスまたはゴールのマスにたどり着くまで同じ方向に進み続ける. ただしスケートリンクの外に出ると, ゲームオーバーである. - 人は, 止まっている時のみ進む方向を変えることができる. - ゴールのマスの上に来ると, ゲームクリアである. しかし、彼の持っているスケートボードは既に破壊寸前である. よって, 以下のように速度が変わってしまう. - 彼は $ 1 $ マス動くのに $ k $ 秒かかる. 最初, $ k=1 $ である. - 彼がコンクリートのマスの上に来て, 停止すると, $ k $ が $ 1 $ 増える. - 上下左右の $ 4 $ 方向にしか動くことはできない. 彼はスケートリンクに行く前に, 全てのマス $ (i,\ j) $ について, マス $ (i,\ j) $ からスタートすると最短で何秒かかるかを知りたい. 彼の代わりにプログラムを書け.

Input Format

入力は以下の形式で標準入力から与えられる. > $ H $ $ W $ $ c_{1,1} $$ c_{1,2} $$ c_{1,3} $ ... $ c_{1,W} $ $ c_{2,1} $$ c_{2,2} $$ c_{2,3} $ ... $ c_{2,W} $ $ c_{3,1} $$ c_{3,2} $$ c_{3,3} $ ... $ c_{3,W} $ ... $ c_{H,1} $$ c_{H,2} $$ c_{H,3} $ ... $ c_{H,W} $ $ 1 $ 行目には, スケートリンクの大きさ $ H $, $ W $ が与えられる. $ 2 $ 行目から $ H $ 行にわたって, スケートリンクの状態が与えられる. ただし, 各マスの状態は, 以下のような文字で表現される. - `.` は, 氷のマスを表す. - `#` は, コンクリートのマスを表す. - `G` は, ゴールのマスを表す.

Output Format

以下の形式で出力せよ. > $ d_{1,1} $ $ d_{1,2} $ $ d_{1,3} $ ... $ d_{1,W} $ $ d_{2,1} $ $ d_{2,2} $ $ d_{2,3} $ ... $ d_{2,W} $ $ d_{3,1} $ $ d_{3,2} $ $ d_{3,3} $ ... $ d_{3,W} $ ... $ d_{H,1} $ $ d_{H,2} $ $ d_{H,3} $ ... $ d_{H,W} $ $ d_{i,j} $ は, マス $ (i,\ j) $ から出発する場合のゴールするまでの最短時間を表す. ただし, どんな方法を使ってもゴールできない場合, $ d_{i,j} $ の値は $ -1 $ となる.

Explanation/Hint

### 制約 - $ H $ は $ 1 $ 以上 $ 777 $ 以下の整数. - $ W $ は $ 1 $ 以上 $ 777 $ 以下の整数. - スケートリンクには $ 0 $ 個以上 $ 7\ 777 $ 個以下のコンクリートのマスが存在する. - スケートリンクにはゴールのマスがちょうど $ 1 $ 個存在する. ### 小課題 小課題 $ 1 $ \[$ 40 $ 点\] - $ H\ =\ 1 $. - $ W\ \leq\ 17 $. 小課題 $ 2 $ \[$ 160 $ 点\] - $ H\ \leq\ 17 $. - $ W\ \leq\ 17 $. - スケートリンクには $ 77 $ 個以下のコンクリートのマスが存在する. 小課題 $ 3 $ \[$ 190 $ 点\] - $ H\ \leq\ 177 $. - $ W\ \leq\ 177 $. - スケートリンクには $ 377 $ 個以下のコンクリートのマスが存在する. 小課題 $ 3 $ \[$ 410 $ 点\] - 追加の制約はない. ### Sample Explanation 1 !\[ \](https://img.atcoder.jp/s8pc-5/fe10790bc085cdf9081a2d91f3597a64.png) スケートリンクの状態は上図のようになっている. マス $ (2,\ 4) $ からスタートすると, 上図のように $ 8 $ 秒かかる. ### Sample Explanation 2 !\[ \](https://img.atcoder.jp/s8pc-5/59c02527d9a8aa4441e839fc8a94b15c.png) スケートリンクの状態は上図のようになっている. マス $ (1,\ 1) $ からスタートすると, 上図のように $ 15 $ 秒かかる.