У вас есть квадратная шахматная доска размера \(n \times n\). Строки пронумерованы сверху вниз числами от \(1\) до \(n\), а столбцы — слева направо числами от \(1\) до \(n\). Таким образом, каждая клетка доски задается парой целых чисел \((x, y)\) (\(1 \le x, y \le n\)), где \(x\) — номер строки, а \(y\) — номер столбца.
От вас требуется выполнить \(q\) запросов трех типов:
- Поставить новую ладью в клетку \((x, y)\).
- Убрать ладью из клетки \((x, y)\), куда ранее была поставлена ладья.
- Проверить, верно ли, что каждая клетка подпрямоугольника \((x_1, y_1) - (x_2, y_2)\) доски атакована хотя бы одной ладьей.
Подпрямоугольником называется множество клеток доски \((x, y)\), для которых верно, что \(x_1 \le x \le x_2\) и \(y_1 \le y \le y_2\).
Напомним, что клетка \((a, b)\) атакована ладьей, находящейся в клетке \((c, d)\), если \(a = c\) или \(b = d\). В частности, клетка, в которой находится ладья, атакована этой ладьей.
Выходные данные
Для каждого запроса третьего типа в отдельной строке выведите «Yes» (без кавычек), если каждая клетка данного подпрямоугольника атакована хотя бы одной ладьей.
В противном случае выведите «No» (без кавычек).
Примечание
Рассмотрим пример. После первых двух запросов доска будет выглядеть следующим образом (буквой \(R\) обозначены клетки, в которых находится ладья, а зеленым выделен прямоугольник запроса третьего типа):
Доска после выполнения третьего и четвертого запросов:
Доска после выполнения пятого и шестого запросов:
Доска после выполнения седьмого и восьмого запросов:
Доска после выполнения последних двух запросов:
Примеры
| № | Входные данные | Выходные данные |
|
1
|
8 10 1 2 4 3 6 2 7 2 1 3 2 3 6 2 7 2 1 4 3 3 2 6 4 8 2 4 3 3 2 6 4 8 1 4 8 3 2 6 4 8
|
No
Yes
Yes
No
Yes
|