Ваш друг прислал вам строку \(S\), состоящую из \(n\) строчных английских букв. Оказывается, это число, записанное в ромской системе счисления. Знания о ромских числах давно утрачены, но сохранился алгоритм перевода ромских чисел в привычные нам. Пронумеруем символы \(S\) от \(1\) до \(n\) слева направо. Значение числа \(S\) обозначим как \(f(S)\), оно определяется следующим образом:
- Если \(|S| > 1\), то выбирается произвольное значение \(m\) (\(1 \le m < |S|\)) и считается, что \(f(S) = -f(S[1, m]) + f(S[m + 1, |S|])\), где \(S[l, r]\) — это подстрока \(S\) с \(l\)-й позиции до \(r\)-й включительно.
- Иначе \(S = c\), где \(c\) — какая-то буква. В таком случае \(f(S) = 2^{pos(c)}\), где \(pos(c)\) — это позиция буквы \(c\) в английском алфавите (\(pos(\)a\() = 0\), \(pos(\)z\() = 25\)).
Обратите внимание, что \(m\) выбирается независимо на каждом шаге.
Друг уверен, что правильно выбирая \(m\) на каждом шаге, можно получить \(f(S) = T\). Прав ли он?
Выходные данные
Выведите «Yes», если можно получить требуемое значение, иначе выведите «No».
Вы можете выводить каждую букву в любом регистре (строчную или заглавную).
Примечание
Во втором примере нельзя получить \(-7\). Но можно получить, например, \(1\) следующим образом:
- Сперва выбираем \(m = 1\), тогда \(f(\)abc\() = -f(\)a\() + f(\)bc\()\)
- \(f(\)a\() = 2^0 = 1\)
- \(f(\)bc\() = -f(\)b\() + f(\)c\() = -2^1 + 2^2 = 2\)
- Итого \(f(\)abc\() = -1 + 2 = 1\)
Примеры
| № | Входные данные | Выходные данные |
|
1
|
2 -1 ba
|
Yes
|
|
2
|
3 -7 abc
|
No
|
|
3
|
7 -475391 qohshra
|
Yes
|