Рассмотрим множество точек \(A\), изначально пустое. Есть три типа запросов:
- Добавить точку \((x_i, y_i)\) в множество \(A\). Гарантируется, что эта точка не принадлежит \(A\) в данный момент.
- Удалить точку \((x_i, y_i)\) из \(A\). Гарантируется, что эта точка принадлежит \(A\) в данный момент.
- Дана точка \((x_i, y_i)\), нужно найти минимальное количество точек, которые нужно добавить в множество \(A\) для того, чтобы сделать \(A\) симметричным относительно прямой, проходящей через точки \((0, 0)\) и \((x_i, y_i)\). Обратите внимание, что эти точки на самом деле не добавляются в \(A\), то есть запросы независимы друг от друга.
Выходные данные
Для каждого запроса третьего типа выведите одно целое число в отдельной строке — ответ на запрос.
Примечание
Первый пример показан на рисунке ниже.
Примеры
| № | Входные данные | Выходные данные |
|
1
|
12 1 1 6 1 6 1 1 5 5 1 2 3 3 4 4 1 3 2 3 7 7 2 2 3 2 6 1 3 8 8 2 5 5 3 1 1
|
1
0
2
2
|
|
2
|
6 1 1 2 3 1 1 1 1 1 3 2 2 2 1 1 3 2 4
|
1
1
0
|