問題文
H 行 W 列のグリッドがあります。 以下、上から i 行目、左から j 列目のマスを (i,j) と表記します。 グリッドの各マスには英小文字が書かれており、(i,j) に書かれた文字は与えられる文字列 Si の j 文字目と一致します。
すぬけくんは、辺で隣接するマスに移動することを繰り返して (1,1) から (H,W) まで移動しようと思っています。 訪れるマス (最初の (1,1) と 最後の (H,W) を含む)に書かれた文字が、 訪れる順に s
rightarrow n
rightarrow u
rightarrow k
rightarrow e
rightarrow s
rightarrow n
rightarrowdots となるような経路が存在するか判定してください。 なお、2 つのマス (i1,j1),(i2,j2) は ∣i1−i2∣+∣j1−j2∣=1 を満たすとき、またそのときに限り「辺で隣接する」といいます。
より厳密には、マスの列 ((i1,j1),(i2,j2),dots,(ik,jk)) であって以下の条件を全て満たすものが存在するか判定してください。
- (i1,j1)=(1,1),(ik,jk)=(H,W)
- すべての t(1leqt<k) について、(it,jt) と (it+1,jt+1) は辺で隣接する
- すべての t(1leqtleqk) について、(it,jt) に書かれた文字は
snuke
の ((t−1)bmod5)+1 文字目と一致する
制約
- 2leqH,Wleq500
- H,W は整数
- Si は英小文字からなる長さ W の文字列
入力
入力は以下の形式で標準入力から与えられる。
H W
S1
S2
vdots
SH
出力
問題文中の条件を満たす経路が存在するならば Yes
を、存在しないならば No
を出力せよ。
入力例 1
2 3
sns
euk
出力例 1
Yes
$(1,1) \\rightarrow (1,2) \\rightarrow (2,2) \\rightarrow (2,3)$ という経路は、訪れたマスに書かれた文字が訪れた順に s
rightarrow n
rightarrow u
rightarrow k
となるため条件を満たします。
入力例 2
2 2
ab
cd
出力例 2
No
入力例 3
5 7
skunsek
nukesnu
ukeseku
nsnnesn
uekukku
出力例 3
Yes