B. Курорт
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
stdin
вывод
stdout

Валера наконец-то решил отдохнуть! Он собрал все свои вещи и отправился на горнолыжный курорт.

Валера решил прокатиться на лыжах, однако понял, что плохо ориентируется на местности. Ему подсказали, что на курорте есть n объектов (будем считать, что объекты пронумерованы некоторым образом числами от 1 до n), и каждый из объектов является либо отелем, либо горой.

Валера разузнал, что на горнолыжном курорте построено несколько лыжных дорожек. А именно, для каждого объекта v на курорте существует не более одного объекта u такого, что из объекта u построена лыжная дорожка, ведущая в объект v. Известно, что не существует такого отеля, из которого построена лыжная дорожка, ведущая в некоторый объект.

Валера боится потеряться на курорте, поэтому он хочет, чтобы Вы предложили для его лыжной прогулки маршрут из объектов v1, v2, ..., vk (k ≥ 1) такой, что:

  1. Объекты с номерами v1, v2, ..., vk - 1 — горы, а объект с номером vk — отель.
  2. Для любого целого i (1 ≤ i < k) из объекта с номером vi построена ровно одна лыжная дорожка. Эта дорожка должна вести в объект vi + 1.
  3. В маршруте как можно больше объектов (k максимально).

Помогите Валере. Найдите такой маршрут, который удовлетворит всем критериям нашего героя!

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

В первой строке записано целое число n (1 ≤ n ≤ 105) — количество объектов.

Во второй строке записаны n целых чисел через пробел type1, type2, ..., typen — тип объекта с номером i. Если typei равно нулю, то i-ый объект является горой. Если typei равно единице, то i-ый объект является отелем. Гарантируется, что хотя бы один объект является отелем.

В третьей строке входных данных записано n целых чисел через пробел a1, a2, ..., an (0 ≤ ai ≤ n) — описание лыжных дорожек. Если число ai равно нулю, это означает, что не существует такого объекта v такого, что из v в i построена лыжная дорожка. Если число ai не равно нулю, это означает, что из объекта с номером ai построена дорожка в объект i.

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

В первой строке выведите k — максимальную возможную длину маршрута для Валеры. Во второй строке выведите k целых чисел v1, v2, ..., vk — сам маршрут.

Если существует несколько решений, разрешается вывести любое.

Примеры
Входные данные
5
0 0 0 0 1
0 1 2 3 4
Выходные данные
5
1 2 3 4 5
Входные данные
5
0 0 1 0 1
0 1 2 2 4
Выходные данные
2
4 5
Входные данные
4
1 0 0 0
2 3 4 2
Выходные данные
1
1