E. Маленький Артёмка и Машина Времени
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Маленький Артёмка изобрёл машину времени! Он может перемещаться во времени куда угодно, но, разумеется, все его мысли только о программировании. Он хочет использовать машину времени, чтобы улучшить известную структуру данных — мультимножество.

Артёмка хочет создать простое мультимножество для целых чисел. Он хочет поддерживать следующие операции:

  1. Добавить целое число в мультимножество. Обратите внимание, что разница мультимножества и множества состоит как раз в том, что в мультимножестве одно и то же число может содержаться несколько раз.
  2. Удалить целое число из мультимножества. При этом удаляется только одно вхождение числа в мультимножество. Артёмка не хочет иметь дело с разными исключениями, так что все операции удаления применяются только в случае, если хотя бы один экземпляр числа присутствует в мультимножестве.
  3. Узнать, сколько экземпляров данного целого числа находится в мультимножестве.

Но что же насчёт машины времени? Если обычно Артёмка просто выполняет последовательность операций со своим мультимножеством, то теперь он умеет перемещаться в произвольные моменты времени и добавлять там новые операции! Давайте посмотрим на пример.

  • Сперва Артёмка добавляет число 5 в мультимножество в момент времени 1.
  • Затем он добавляет число 3 в мультимножество в 5-й момент времени.
  • В момент времени 6 Артёмка спрашивает, сколько 5 содержится в мультимножестве. Ответ — 1.
  • Затем Артёмка возвращается назад во времени и спрашивает, сколько чисел 3 было в мультимножестве в момент времени 4. Так как 3 была добавлена только в момент времени 5, то ответ на запрос Артёмки — 0.
  • Затем Артёмка снова возвращается назад во времени и удаляет 5 из мультимножества в момент времени 3.
  • Наконец, в момент времени 7 Артёмка спрашивает, сколько 5 содержится в мультимножестве. Ответ — 0, так как мы добавили одну 5 в момент времени 1 и удалили её в момент времени 3.

Заметьте, что Артёмка настолько не любит исключения, что после любой его последовательности действий операции добавления и удаления остаются корректными, то есть никогда не поступает запрос на удаление несуществующего элемента. Ответом на запрос третьего типа является количество вхождений элемента в момент, когда Артёмка обращается к мультимножеству, то есть дальнейшие действия Артёмки не влияют на ответ на данный запрос.

Помогите Артёмке реализовать мультимножество для путешественников во времени.

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

Первая строка входных данных содержит единственно целое число n (1 ≤ n ≤ 100 000) — число запросов Артёмки.

Следующие n строк содержат по одному запросу. Каждая из них содержит три целых числа ai, ti и xi (1 ≤ ai ≤ 3, 1 ≤ ti, xi ≤ 109) — тип запроса, момент времени, в который отравляется Артёмка, и число, определяющее сам запрос, соответственно. Гарантируется, что все моменты времени различны и что после каждой операции все операции удаления действительно удаляют какой-то элемент из мультимножества.

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

Для каждого запроса третьего типа выведите ответ на него в тот момент, когда Артёмка его совершает.

Примеры
Входные данные
6
1 1 5
3 5 5
1 2 5
3 6 5
2 3 5
3 7 5
Выходные данные
1
2
1
Входные данные
3
1 1 1
2 2 1
3 3 1
Выходные данные
0