5. Бутерброды

Не решаласьСредняя

Раньше Саша был олимпиадником, но из-за того, что он живет не в столице, а в небольшом городе К, он не смог на этом заработать денег, и теперь ему приходится работать поваром в студенческой столовой. Сейчас Саша занят составлением рецептов бутербродов, которые в будущем он планирует подавать на завтрак. Изначально перед ним лежит KK кусков хлеба и он совершает с ними NN последовательных операций, каждая из которых относится к одному из следующих типов:

  1. Саша берет ингредиент xx из холодильника и кладет сверху на ii-й бутерброд;

  2. Саша снимает с ii-го бутерброда верхний ингредиент и возвращает его в холодильник;

  3. Саше начинает казаться, что ii-й и jj-й бутерброды слишком сильно отличаются по размеру, поэтому он начинает перекладывать ингредиенты с большего бутерброда на меньший, пока разница их размеров станет не больше, чем 1.

Требуется написать программу, которая выведет количество различных бутербродов, которые получались у Саши в ходе составления рецептов. Пустой бутерброд не считается бутербродом. Бутерброды, которые получаются в процессе выполнения операции третьего типа, также следует принимать во внимание.

Два бутерброда считаются различными, если у них различается число ингредиентов или их порядок (то есть существует такое ii что на ii-м сверху месте расположены ингредиенты разного типа).

Формат ввода

В первой строке указаны два числа KK и NN (K20K \leq 20, N3105N \leq 3 \cdot 10^5) - количество кусков хлеба, лежащих перед Сашей и количество действий, соотвественно.

В последующих NN строках описаны действия, совершенные Сашей. Каждая строка начинается с числа 11, 22 или 33, обознчающих тип операции. Если операция имеет тип 11, то после написаны два целых числа ii и xx (1iK1 \le i \leq K, 1x1091 \le x \leq 10^9) - номер бутерброда и ингредиента, соотвественно. Для операции типа 22 записано одно целое число ii (1iK1 \le i \leq K) - номер бутерброда. Гарантируется, что на этом бутерброде есть хотя бы один игредиент. Наконец, для операций типа 33 записана пара целых чисел ii и jj (1i,jK1 \le i,j \le K, iji \ne j) - номера бутербродов, которые надо «уравнять».

Формат вывода

Вывести требуется единственное число - ответ на задачу.

Ограничения

Ограничение времени

2 с

Ограничение памяти

512 МБ

Пример 1

Ввод
3 5
1 1 3
1 1 3
3 2 1
1 2 7
1 3 7
Вывод
4

Теги

Нужно войти, чтобы отправить решение.Войти