D. a, ab, ba строки
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
512 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Дана строка $$$S$$$ длины $$$n$$$, состоящая из символов «a» и «b», и $$$q$$$ запросов. Запросы бывают двух видов:

  1. заменить $$$i$$$-й символ на противоположный (то есть «a» меняется на «b», а «b» на «a»);
  2. проверить, можно ли разбить отрезок строки с $$$l$$$-го по $$$r$$$-й символ на подстроки «a», «ab» и «ba».

Для каждого запроса второго вида выведите ответ на запрос.

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

В первой строке дано одно число $$$n$$$ — длина строки ($$$1 \le n \le 100\,000$$$).

Во второй строке дана сама строка $$$S$$$, состоящая из символов «a» и «b».

В третьей строке дано число $$$q$$$ — количество запросов ($$$1 \le q \le 100\,000$$$).

Каждая из следующих $$$q$$$ строк начинается с целого числа $$$type$$$ — типа запроса ($$$1 \le type \le 2$$$).

В запросах первого типа далее следует целое число $$$i$$$ ($$$1 \le i \le n$$$).

В запросах второго типа далее следует пара целых чисел $$$l$$$, $$$r$$$ ($$$1 \le l \le r \le n$$$).

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

Для каждого запроса второго типа выведите «YES», если можно разбить строку как описано в условии, и «NO» иначе.

Пример
Входные данные
7
abbabba
4
2 3 4
2 3 5
1 6
2 3 7
Выходные данные
YES
NO
YES
Примечание

В первом примере подстроку из первого запроса можно представить в виде «ba», подстроку из второго запроса «bab» невозможно разбить на допустимые подстроки, после третьего запроса строка имеет вид «abbabaa», подстроку из четвертого запроса можно разбить следующим образом: «ba|ba|a»