A. Тройная красота
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Мечтая о красотах весны, художник Аркадий подготовил очень длинный холст.

У Аркадия много красок трех цветов: цианового, пурпурного и желтого. Одномерный холст разбит на n отрезков, следующих один за другим, и каждый отрезок надо покрасить в один из этих трех цветов.

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

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

Первая строка содержит одно целое число n (1 ≤ n ≤ 100) — длину холста.

Вторая строка содержит строку s из n символов, где i-й символ равен «C» (обозначает отрезок, покрашенный в циановый цвет), «M» (отрезок, покрашенный в пурпурный цвет), «Y» (в желтый) или «?» (еще не покрашенный отрезок).

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

Если существуют два различных способа покрасить оставшиеся участки холста, удовлетворяя условию, выведите «Yes», иначе выведите «No» (без кавычек).

Вы можете выводить каждую букву в любом регистре (строчную или заглавную).

Примеры
Входные данные
5
CY??Y
Выходные данные
Yes
Входные данные
5
C?C?Y
Выходные данные
Yes
Входные данные
5
?CYC?
Выходные данные
Yes
Входные данные
5
C??MM
Выходные данные
No
Входные данные
3
MMY
Выходные данные
No
Примечание

В первом примере есть ровно два различных способа раскрасить холст: CYCMY и CYMCY.

Во втором примере тоже есть ровно два способа: CMCMY и CYCMY.

В третьем примере есть четыре способа: MCYCM, MCYCY, YCYCM и YCYCY.

В четвертом примере независимо от того, как покрасить не покрашенные отрезки, существующие отрезки пурпурного цвета не дадут холсту удовлетворять условию. То же верно для пятого примера.