グリッドにサイクルは存在するか?

高さが h、幅が w のグリッドがあり、各マスに文字が入っています。同じ文字のマスのみを連続して移動できるとき(たとえば a だけを辿るなど)、ある地点で以前に訪れたマスに再び到達できるかを考えます。ただし、先ほどいたマスにそのまま戻ることはできません。移動は水平方向または垂直方向に隣接するマスのみ許されます。
要するに、グリッド上で同じ文字がつながって「サイクル」を形成しているかどうかを確かめたいという問題です。

入力

最初の行には、hw(1 ≤ h, w ≤ 200)の2つの整数が与えられます。
続く h 行には、それぞれ w 個の小文字のラテン文字が並んでいます。

出力

もし同じ文字によるサイクルがグリッド内に存在するならば Yes を、存在しないならば No を出力してください。

Input
Output
4 4 aaaa abba abbc aaaa
Yes
4 4 aaaa abba abdc aaaa
No
4 4 aaaa abba abda aaaa
Yes
4 4 ccca cdcc ccec fccc
Yes
3 3 abb bcb bba
No
 

Constraints

Time limit: 2 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue