Есть ли в сетке цикл?

Дана сетка высотой h и шириной w, заполненная буквами. Разрешается перемещаться только по клеткам с одинаковой буквой (например, если вы находитесь на клетке с буквой a, то можете передвигаться только по клеткам с буквой a). Ваша цель — выяснить, возможно ли, двигаясь по таким клеткам, вернуться в уже посещённую клетку, при этом переход назад в предыдущую клетку одним шагом не допускается. Разрешено передвигаться только по соседним клеткам по горизонтали или вертикали.
Другими словами, нужно понять, есть ли в этой сетке цикл, образованный клетками с одной и той же буквой.

Входные данные

Первая строка содержит два целых числа h и w (1 ≤ h, w ≤ 200).
В следующих h строках приведены по w строчных букв латинского алфавита.

Вывод

Программа должна вывести Yes, если в сетке есть цикл, и No в противном случае.

Примеры

Входные данные
Вывод
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