В армiї \(N\) вiйськових. Вiйськовi пронумерованi вiд 1 до \(N\) . У кожного вiйськового є один безпосереднiй командир. Командир командира є також командиром для цього вiйськового. Отже, у кожного вiйськового може бути один або бiльше командирiв, але лише один безпосереднiй командир. В якостi вправи для визначення ефективностi армiї було розроблено наступне навчання, яке вам треба реалiзувати у своїй програмi.
Задається список наказiв. Кожен наказ має форму: ’<\(Type\)><пропуск><\(Id\)>’, де \(Type\) - 1, 2 або 3, а \(Id\) - це число \(S\) \((1 \le S \le N )\), яке вказує на вiйськового пiд номером \(S\).
Iснує три типи наказiв:
1: Усi вiйськовi, у яких S є одним iз командирiв виконують команду ’Пiдйом’.
2: Усi вiйськовi, у яких S є одним iз командирiв виконують команду ’Вiдбiй’.
3: Потрiбно порахувати та вивести кiлькiсть вiйськових, якi не сплять, та у яких \(S\) є одним iз командирiв.
Серед усiх вiйськових є один, який не має жодного командира. Вiн - командувач армiї. На початку всi вiйськовi несуть службу (тобто не сплять).
Обмеження:
\(1 \le N \le 10^5\)
\(1 \le Q \le 10^5\)
\(1 \le Type \le 3\)
\(1 \le S \le N\)
Формат вхідних даних
Перший рядок мiстить \(N\) - кiлькiсть вiйськових.
Наступний рядок мiстить \(N\) цiлих чисел, якi вказують на безпосереднього командира i-го вiйськового. Командувач армiї буде позначений числом 0.
Третiй рядок мiстить \(Q\), кiлькiсть наказiв.
Кожен з наступних \(Q\) рядкiв мiстить наказ: два цiлi числа, тип наказу та \(S\).
Формат вихідних даних
Для кожного наказу 3-го типу виведiть кiлькiсть вiйськових, якi не сплять, та у яких \(S\) є одним iз командирiв.
Приклад вхідних даних
3
2 0 1
3
3 1
2 1
3 1
Приклад вихідних даних
1
0
Пояснення
Є лише один вiйськовий, у якого 1 є командиром, тобто вiйськовий 3. Отже, вiдповiдь першого наказу 3-го типу - 1. Пiсля наказу ’2 1’ всi солдати, у яких 1 є одним iз командирiв (тут, лише вiйськовий 3) пiдуть спати. Тому вiдповiдь наступного наказу ’3 1’ - 0.
Коментарі