AT_wupc_06 僕は宇宙人

Description

[problemUrl]: https://atcoder.jp/contests/wupc2nd/tasks/wupc_06 僕は宇宙人.長い旅路の末,遥か彼方からここへやってきたのです.地球はよいところですね. 宇宙人が使うコミュニケーションボードは,$ N $ 行 $ M $ 列のマスから成るボードである.それぞれのマスにはアルファベットが $ 1 $ 文字だけ書かれている.宇宙人は,このボードを次のような決まりで移動することでメッセージの伝達を行う. 1. ボードの任意のマス目の上に乗る. 2. 現在地から,進む方向(左,右,上,下)を1つ決める.初回をのぞき,このときの方向は,直前に進んだ方向とは違うものでなければならない. 3. 決めた方向に,次の伝えたい文字が見つかるまで進む. - このとき,もしもボードの外に出てしまったら,伝達失敗となる. - 移動のとき,進んだマス目に応じたコストがかかる.$ x $ マス進んだときのコストは $ x $ である. 4. 進行中に伝えたい文字が見つかったら,直ちに止まる. 5. 伝えたい文字が残っていない場合は,伝達終了となる.まだ文字が残っている場合は,2. に戻る. このメッセージ伝達手法は,方向の選び方によって伝達に失敗したり,あるいは移動コストがかかりすぎることが問題である. そこで,あなたの仕事はボードの文字と伝えたい文字列が与えられたとき,伝達不可能であるかを判定することと,伝達可能である場合,その最小コストを求めることである. 入力は以下の形式で標準入力から与えられる. > $ N M L $ $ S $ $ c_{1,1}c_{1,2}\ ...\ c_{1,M} $ $ c_{2,1}c_{2,2}\ ...\ c_{2,M} $ $ ... $ $ c_{N,1}c_{N,2}\ ...\ c_{N,M} $ - $ 1 $ 行目にボードの大きさを表す $ N $($ 1\ ≦\ N\ ≦\ 100 $) と $ M $($ 1\ ≦\ M\ ≦\ 100 $),および伝えたい文字列の文字数 $ L $($ 1\ ≦\ L\ ≦\ 100 $) が半角スペース区切りで与えられる. - $ 2 $ 行目にはアルファベットの小文字のみを含む長さ $ L $ の文字列 $ S $ が与えられる.これは宇宙人が伝えたい文字列を表している. - $ 3 $ 行目~ $ N+2 $ 行目には,$ M $ 文字のアルファベットの小文字のみを含む文字列が与えられる.これらはボードに書かれている文字を表すデータである. メッセージの伝達に必要な最小コストを $ 1 $ 行に出力せよ.もし伝達が不可能である場合は,"-1" と出力せよ. なお、最後には改行を出力せよ. ```
3 3 2
ab
xzz
azb
zzz
```

 ```
3
```

 ```
3 4 2
ab
xzza
azzz
zzbz
```

 ```
-1
```
                            

Input Format

N/A

Output Format

N/A