eolymp
bolt
Try our new interface for solving problems
Məsələlər

Школьные переписки

Школьные переписки

Лосяш решил сделать обучение более доступным для Смешариков и открыл школу. Разумеется, как и в любой другой школе, в этой школе есть учителя (например, Пин и Совунья) и есть ученики (например, Крош и Ёжик). Ну и, конечно же, Лосяш - директор. Всего суммарно в школе n Смешариков (преподавательского состава и учеников). Для удобства, пронумеруем их натуральными числами от 1 до n.

Для общения между учениками и учителями был создан мессенджер, который позволяет написать сообщение любому другому пользователю, но с некоторыми дополнительными правилами:

  • Если ученик пишет учителю, то копия этого сообщения отправляется всему преподавательскому составу. То есть, директору и всем учителям. Иными словами, директор и каждый учитель получат это сообщение.
  • Если учитель пишет сообщение ученику, то сообщение получат этот ученик и директор.
  • Когда пользователю приходит сообщение, оно попадает в непрочитанные.
  • Когда учитель читает непрочитанное сообщение, отправленное учеником, это сообщение исчезает из непрочитанных у всех учителей, но не у директора.
  • Во всех остальных случаях, когда пользователь читает полученное непрочитанное сообщение, оно удаляется из непрочитанных только у него.

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

Лосяш хочет оптимизировать учебный процесс, поэтому в некоторые моменты времени ему интересно, сколько непрочитанных сообщений есть у какого-то конкретного пользователя.

Вам дана последовательность из q событий в том порядке, в котором они происходили. Для каждого события, соответствующего вопросу Лосяша, выведите ответ.

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

В первой строке даны два целых числа n и q (1n, q2 * 105) - количество Смешариков в школе и количество событий, соответственно.

Во второй строке даны n целых чисел ti (ti0, 1, 2) - роли Смешариков. Если ti = 0, то i-й Смешарик - это директор Лосяш. Если ti = 1 - это учитель. Иначе - ученик. Гарантируется, что ровно одно число среди ti равно 0.

В следующих q (1iq) строках дано описание событий. Событие номер i может иметь один из трех типов:

  • "1 ai bi" - пользователь ai отправил сообщение пользователю bi (1ai, bi ≤ n, aibi).
  • "2 ai xi" - пользователь ai прочитал сообщение, отправленное во время события номер xi (1ain, 1xi < i).
  • "3 ai" - требуется вывести количество непрочитанных сообщений у пользователя ai (1ain).

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

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

Для каждого события третьего типа выведите на новой строке количество непрочитанных сообщений у пользователя ai.

Zaman məhdudiyyəti 1 saniyə
Yaddaşı istafadə məhdudiyyəti 128 MiB
Giriş verilənləri #1
4 5
0 1 1 2
1 2 4
1 4 2
2 3 2
3 1
3 2
Çıxış verilənləri #1
2
0
Mənbə 2020 Цикл Интернет-олимпиад для школьников, первая командная олимпиада, 18 октября, Задача H