#abc301e. [abc301_e]Pac-Takahashi

[abc301_e]Pac-Takahashi

問題文

HHWW 列のグリッドがあります。 上から ii 行目、左から jj 列目のマス目を (i,j)(i,j) と表します。 グリッドの各マスはスタートマス、ゴールマス、空マス、壁マス、お菓子マスのいずれかです。 (i,j)(i,j) が何のマスであるかは文字 Ai,jA_{i,j} によって表され、Ai,j=A_{i,j}= S のときスタートマス、 Ai,j=A_{i,j}= G のときゴールマス、 Ai,j=A_{i,j}= . のとき空マス、 Ai,j=A_{i,j}= # のとき壁マス、 Ai,j=A_{i,j}= o のときお菓子マスです。 ここで、スタートマスとゴールマスはちょうど 11 つずつあり、お菓子マスは 1818 個以下であることが保証されます。

高橋くんは現在スタートマスにいます。 高橋くんは、上下左右に隣接するマスであって壁マスでないマスに移動することを繰り返し行えます。 高橋くんは今から TT 回以下の移動によってゴールマスに到達したいです。 そのようなことは可能かどうか判定してください。 可能な場合は、最終的にゴールマスにいるという条件のもとで、移動の途中に訪れるお菓子マスの数の最大値を求めてください。 ただし、11 つのお菓子マスに複数回訪れた場合でも、カウントするのは 11 回のみです。

制約

  • 1leqH,Wleq3001\\leq H,W \\leq 300
  • 1leqTleq2times1061 \\leq T \\leq 2\\times 10^6
  • H,W,TH,W,T は整数
  • Ai,jA_{i,j}S, G, ., #, o のいずれか
  • Ai,j=A_{i,j}= S を満たす (i,j)(i,j) の組がちょうど 11 つ存在する
  • Ai,j=A_{i,j}= G を満たす (i,j)(i,j) の組がちょうど 11 つ存在する
  • Ai,j=A_{i,j}= o を満たす (i,j)(i,j) の組は 1818 個以下

入力

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

HH WW TT A1,1A1,2dotsA1,WA_{1,1}A_{1,2}\\dots A_{1,W} vdots\\vdots AH,1AH,2dotsAH,WA_{H,1}A_{H,2}\\dots A_{H,W}

出力

TT 回以下の移動によってゴールマスに到達することが不可能ならば -1 を出力せよ。 可能ならば、最終的にゴールマスにいるという条件のもとで、移動の途中に訪れるお菓子マスの数の最大値を出力せよ。


入力例 1

3 3 5
S.G
o#o
.#.

出力例 1

1

$(1,1) \\rightarrow (1,2) \\rightarrow (1,3) \\rightarrow (2,3) \\rightarrow (1,3)$ と 44 回移動すると、 11 個のお菓子マスを訪れた上で最終的にゴールマスにいることができます。 55 回以下の移動で 22 個のお菓子マスを訪れた上で最終的にゴールマスにいることはできないので、11 が答えです。

なお、$(1,1) \\rightarrow (2,1) \\rightarrow (1,1) \\rightarrow (1,2) \\rightarrow (1,3) \\rightarrow (2,3)$ と移動すると 55 回の移動で 22 個のお菓子マスを訪れることができますが、最終的にゴールマスにいないため無効であることに注意してください。


入力例 2

3 3 1
S.G
.#o
o#.

出力例 2

-1

11 回以下の移動でゴールマスに到達することはできません。


入力例 3

5 10 2000000
S.o..ooo..
..o..o.o..
..o..ooo..
..o..o.o..
..o..ooo.G

出力例 3

18