Statement is not available in English language
E. Стикеры
ограничение по времени на тест
1.5 секунд
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Организаторы олимпиады «Технологичные Когнитивы» обещали стикеры тем, кто позовет друзей участвовать в соревновании. Каждый участник при регистрации мог указать ФИО друга, который уговорил его принять участие в олимпиаде (а мог и не указать никого).

Если двое или более друзей, указавших вас как «пригласившего», зарегистрировались строго позже вас и решили хотя бы одну задачу, вы получаете заветные стикеры.

Пока жюри подводит итоги самой олимпиады, вопрос $$$\it{\text{«Ну что там по стикерам?»}}$$$ звучит из каждого утюга, поэтому помогите жюри и найдите список всех участников, получивших набор стикеров.

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

В первой строке вводится число $$$N$$$ $$$(1 \le N \le 3 \cdot 10^5)$$$  — число участников. Для удобства участники пронумерованы целыми числами от 1 до N.

Во второй строке записаны $$$N$$$ чисел $$$T_i$$$ $$$(1 \le T_i \le 10^9)$$$  — время регистрации $$$i$$$-го участника.

В третьей строке записаны $$$N$$$ чисел $$$P_i$$$ $$$(0 \le P_i \le 12)$$$  — количество задач, решенных участником $$$i$$$.

В четвертой строке записаны $$$N$$$ чисел $$$F_i$$$ $$$(0 \le F_i \le N)$$$  — номер друга, которого $$$i$$$-й участник отметил как «пригласившего». Если $$$F_i = 0$$$, то $$$i$$$-й участник никого не указал в таком статусе.

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

В первой строке выведите одно целое число $$$K$$$ $$$(0 \le K \le N)$$$  — количество участников, которые должны получить стикеры.

Во второй строке через пробел выведите $$$K$$$ целых чисел $$$S_i$$$ $$$(1 \le S_1 \le S_2 \le \ldots \le S_K \le N)$$$  — номера получивших стикеров участников в возрастающем порядке.

Если $$$K = 0$$$, то на второй строке не надо выводить ничего.

Примеры
Входные данные
9
2 3 1 4 5 9 8 7 6
12 11 10 9 8 7 6 5 4
1 1 1 2 2 9 9 9 9
Выходные данные
2
2 9 
Входные данные
5
1 2 10 11 5
6 7 0 9 10
5 5 5 5 0
Выходные данные
0

Примечание

Рассмотрим детально первый тестовый пример.

  • Первый участник указал себя в качестве друга, соответственно он зарегистрировался НЕ позже себя  — не учитывается при распределении.
  • Второй участник указал первого как друга, а также зарегистрировался после участника $$$1$$$, значит, один приглашенный у первого есть.
  • Третий участник указал первого как друга, но зарегистрировался раньше, чем он, поэтому по правилам участник $$$3$$$ так же не учитывается при распределении.
  • Четвертый и пятый участники указали второго как друга и зарегистрировались после него. Засчитываем участнику $$$2$$$ двух приглашенных друзей.
  • Шестой, седьмой и восьмой участники указали девятого участника пригласившим и зарегистрировались после него. Участнику $$$9$$$ засчитали трех приглашенных друзей.
  • Сам девятый участник указал себя в качестве друга, соответственно он зарегистрировался НЕ позже себя  — не учитывается при распределении.

Итого, первому участнику «засчитали» одного друга, второму  — двух, девятому  — трёх. Все засчитанные участники решили хотя бы одну задачу, поэтому дают право участникам $$$2$$$ и $$$9$$$ получить стикеры.

Рассмотрим второй тестовый пример.

  • Первый и второй участники зарегистрировались до пятого, значит ему «в зачет» они не идут.
  • Третий участник зарегистрировался позже пятого, но не решил ни одной задачи, поэтому его голос учитываться не будет.
  • Лишь четвертый участник указал пятого, зарегистрировался позже него и решил хотя бы одну задачу. Поэтому только четвертый участник и будет засчитан пятому при распределинии стикеров.
  • Сам пятый участник не указал вообще никого в анкете  — вероятно он узнал об олимпиаде не от своего друга.
По итогу пятый участник не набрал необходимых двух приглашенных друзей, поэтому ответ на данный тестовый пример равен $$$0$$$.