Ане подарили строку \(s\) длины \(n\), привезённую из Рима. Строка \(s\) состоит из маленьких латинских букв и на первый взгляд не вызывает подозрений. К строке была приложена инструкция.
Начало инструкции.
Палиндромом называется строка, которая читается одинаково как слева направо, так и справа налево. Например, строки «anna», «aboba», «level» являются палиндромами, а строки «gorilla», «banan», «off» — нет.
Подстрокой \([l \ldots r]\) строки \(s\) называется строка \(s_l s_{l+1} \ldots s_{r-1} s_r\). Например, подстрокой \([4 \ldots 6]\) строки «generation» является строка «era».
Строка называется красивой, если она не содержит подстроки длины хотя бы два, являющейся палиндромом. Например, строки «fox», «abcdef» и «yioy» красивые, а строки «xyxx», «yikjkitrb» — нет.
Когда к символу \(s_i\) прибавляют целое положительное число \(x\), он \(x\) раз заменяется на следующий в алфавите, при этом «z» заменяется на «a».
Когда к подстроке \([l, r]\) строки \(s\) прибавляют целое положительное число \(x\), она превращается в строку \(s_1 s_2 \ldots s_{l-1} (s_l + x) (s_{l+1} + x) \ldots (s_{r-1} + x) (s_r + x) s_{r+1} \ldots s_n\). Например, при прибавлении к подстроке \([2, 4]\) строки «abazaba» числа \(6\), получится строка «ahgfaba».
Конец инструкции.
После прочтения инструкции Аня смирилась с тем, что ей предстоит ответить на \(m\) запросов. Запросы бывают двух типов:
- Прибавить к подстроке \([l \ldots r]\) строки \(s\) число \(x\).
- Сказать, является ли подстрока \([l \ldots r]\) строки \(s\) красивой.
Выходные данные
Для каждого запроса второго типа выведите «YES», если подстрока \([l \ldots r]\) строки \(s\) является красивой, в противном случае выведите «NO».
Вы можете выводить «YES» и «NO» в любом регистре (например, строки «yEs», «yes», «Yes» и «YES» будут распознаны как положительный ответ).