Костя очень любит писать контесты на Codeforces. Правда, его расстраивает, что его постоянно взламывают. Поэтому перед очередным контестом он решил обфусцировать свой код (то есть изменить его так, чтобы сделать менее читабельным).
Обфускация происходит так. Сперва Костя смотрит на первый идентификатор в своей программе и заменяет все его вхождения на букву a, затем смотрит на следующий, который ещё не был заменён, и заменяет все его вхождения на букву b, и так далее. Костя — хороший программист, поэтому в его изначальной программе не бывает однобуквенных имён. Кроме того, в любой его программе не более 26 различных идентификаторов.
Вам дан список идентификаторов из некоторой программы в том порядке, в котором они встречаются в программе, с удалёнными пробелами и символами переноса строки. Определите, могла ли эта программа получиться в результате обфускации Костей.
В единственной строке входного файла содержится строка S, состоящая из маленьких латинских букв (1 ≤ |S| ≤ 500) — список идентификаторов программы с удалёнными пробелами.
Если данная программа могла получиться в результате обфускации Костей, выведите «YES» (без кавычек), иначе выведите «NO».
abacaba
YES
jinotega
NO
В первом примере, один из возможных списков идентификаторов такой: «number string number character number string number». Обфускация такой программы выглядела бы следующим образом:
Название |
---|