AT_past17_g 蛇行する文字列
Description
縦 $ H $ マス、横 $ W $ マスのグリッドがあります。上から $ i $ 行目、左から $ j $ 列目のマスを $ (i, j) $ と呼びます。
各マスには英小文字が書かれています。 $ (i, j) $ に書かれている文字は $ G_{i, j} $ です。
長さ $ N $ の文字列 $ S $ が与えられます。マスの列 $ (a_1, b_1) $ , $ (a_2, b_2) $ , $ \dots $ , $ (a_N, b_N) $ であって次の条件を満たすものは存在しますか?存在する場合は`Yes` を、そうでない場合は `No` を出力してください。
- $ (a_1, b_1) $ , $ (a_2, b_2) $ , $ \dots $ , $ (a_N, b_N) $ は全て互いに異なる。
- $ (a_i, b_i) $ と $ (a_{i+1}, b_{i+1}) $ は $ 8 $ 方向に隣接している。言い換えると $ \max(\vert a_i - a_{i+1} \vert, \vert b_i - b_{i+1} \vert) = 1 $ である。
- $ (a_i, b_i) $ に書かれた文字は $ S $ の $ i $ 文字目と一致する。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ H $ $ W $ $ G_{1,1}G_{1,2}\dots G_{1,W} $ $ G_{2,1}G_{2,2}\dots G_{2,W} $ $ \vdots $ $ G_{H,1}G_{H,2}\dots G_{H,W} $ $ N $ $ S $
Output Format
問題文の条件を満たすマスの列が存在する場合は`Yes` を、そうでない場合は `No` を出力せよ。
Explanation/Hint
### Sample Explanation 1
マスの列 $ (2, 1), (3, 2), (2, 3), (1, 2), (1, 1) $ は問題文の条件を全て満たします。よって答えは `Yes` です。
### Constraints
- $ 1 \leq H, W \leq 10 $
- $ G_{i, j} $ は英小文字
- $ 1 \leq N \leq 5 $
- $ S $ は英小文字からなる長さ $ N $ の文字列