Задача №115248. a, ab, ba строки

Дана строка \(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 » иначе.

Примечание

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

Примеры
Входные данные
7
abbabba
4
2 3 4
2 3 5
1 6
2 3 7
Выходные данные
YES
NO
YES
Сдать: для сдачи задач необходимо войти в систему