¿Contiene la cuadrícula un ciclo?

Imagina que tienes una cuadrícula de altura h y anchura w, compuesta por letras. Solo se te permite caminar sobre celdas que tengan la misma letra (por ejemplo, únicamente sobre celdas con la letra a, o únicamente sobre celdas con la letra b, etc.). La pregunta es si sería posible recorrer la cuadrícula y, en algún punto, volver a una celda que ya visitaste antes. Ten en cuenta que no se permite regresar inmediatamente a la celda que acabas de ocupar. Además, solo puedes moverte en direcciones horizontales o verticales hacia celdas vecinas.
En otras palabras, hay que determinar si existe un ciclo formado por las mismas letras dentro de la cuadrícula.

Entrada

La primera línea de la entrada contiene dos enteros h y w (1 ≤ h, w ≤ 200).
Las siguientes h líneas contienen w caracteres alfabéticos en minúscula (letras latinas).

Salida

El programa debe imprimir Yes si en la cuadrícula hay un ciclo y No en caso contrario.

Ejemplos

Entrada
Salida
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