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

Дана сетка высотой 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