\begin{problem}{Очередь за кексами}{стандартный ввод}{стандартный вывод}{1 секунда}{256 мегабайт} В честь юбилея ректорат ЮФУ решил запустить акцию <<Сто и десять кексов>>. В каждом корпусе университета открылась лавка с кексами, в которой каждый студент может получить бесплатные кексы. Не прошло и пары минут после открытия, как к лавкам набежали студенты и образовалось много очередей. Но самая большая очередь образовалась в главном корпусе ЮФУ. Изначально в этой очереди стояло $n$ студентов, но потом в течение следующих $m$ минут какие-то студенты приходили и вставали в очередь, а какие-то уходили. За каждым студентом закреплен номер его зачетной книжки, будем называть это число номером студента. У каждого студента будет уникальный номер, по которому можно однозначно его идентифицировать. Будем считать, что каждую минуту происходило одно из следующих событий: \begin{enumerate} \item Студент с номером $x$ пришел и встал перед студентом с номером $y$; \item Студент с номером $x$ пришел и встал в конец очереди; \item Студент с номером $x$ ушел из очереди; возможно, он потом вернется. \end{enumerate} Аналитикам стало интересно, а какой будет очередь после $m$ минут? Помогите им и сообщите конечное состояние очереди. \InputFile В первой строке заданы два целых числа $n$ и $m$ $(1 \le n, m \le 10^5)$~--- текущее число студентов в очереди и количество изменений. В следующей строке задается $n$ целых \textbf{различных} чисел $a_1, a_2, \cdots , a_n$ $(1 \le a_i \le 10^9)$, где $a_i$~--- номер студента, который стоит на $i$-й позиции в очереди. В следующих $m$ строках идет описание запросов изменения очереди. В каждой строке в зависимости от типа запроса задается два или три числа. Первое число $t_j$ $(1 \le t_j \le 3)$~--- тип события, которое произошло в $j$-ю минуту. Если $t_j = \textbf{1}$, то в строке задается еще 2 числа $x$ $(1 \le x_j \le 10^9)$ и $y$ $(1 \le y_j \le 10^9)$~--- номер студента, который пришел, и номер студента, перед которым он встанет в очереди. Гарантируется, что студент с номером $x$ ещё не занял очередь, а студент с номером $y$ уже стоит в ней. Если $t_j = \textbf{2}$, то в строке задается еще 1 число $x$ $(1 \le x_j \le 10^9)$~--- номер студента, который пришел и встал в конец очереди. Гарантируется, что студент с номером $x$ ещё не занял очередь. Если $t_j = \textbf{3}$, то в строке задается еще 1 число $x$ $(1 \le x_j \le 10^9)$~--- номер студента, который ушел из очереди. Гарантируется, что студент с номером $x$ стоит в очереди. \OutputFile В первой строке выведите одно число $|a|$~--- длину очереди после выполнения всех запросов изменения. В следующей строке выведите $|a|$ чисел $a_1, a_2, \cdots , a_{|a|}$, где $a_i$~--- номер студента, который стоит на $i$-й позиции в очереди. \Example \begin{example} \exmpfile{example.01}{example.01.a}% \end{example} \Note Изначально очередь выглядит следующим образом: \includegraphics{o1.png} В первую минуту приходит студент с номером 8 и встает перед студентом с номером 3. \includegraphics{o2.png} Потом студент с номером 9 встает в конец очереди. \includegraphics{o3.png} Студент с номером 3 уходит из очереди. \includegraphics{o4.png} Потом он возвращается и становится перед студентом с номером 9. \includegraphics{o5.png} После в конец очереди становится студент с номером 10. \includegraphics{o6.png} И студент с номером 1 уходит из очереди. \includegraphics{o7.png} После $m$ событий очередь имеет следующий вид: \includegraphics{o8.png} \end{problem}