Resort

题意翻译

Valera 终于决定要去滑雪胜地了! Valera 意识到自己可能会在新地方迷路,但是有位好心人告诉他胜地有 $n$ 个目的地(每个目的地的编号从 $1$ 到 $n$ ),目的地只会是酒店或雪山。 Valera 又发现胜地有多条雪道,并且对于每个目的地 $v$ 只可能存在一个出发点 $u$ (每个目的地只可能从另外**一个**目的地滑过来)。我们也知道没有雪道会以酒店作为出发点。 Valera 怕他会在胜地迷路,所以他想让你告诉他一条他可以滑行的路径。这条路径包含目的地 $v_1, v_2, ... , v_k (k>=1 )$ 并需要符合以下要求: 1. 目的地 $v_1, v_2, ... , v_{k-1}$ 都是雪山,只有 $v_k$ 是酒店。 2. 对于每个整数 $i (1 <= i <= k)$ ,只有一条以 $v_i$ 为出发点的雪道,也就是说目的地 $v_i$ 只对应**一个**目的地。 3. 这条路径经过尽可能多的目的地( $k$ 为最大值)。 帮助 Valera,找到一条符合所有要求的路径吧! ### 输入格式 第一行包括一个整数$ n (1 <= n <= 10^5)$ ,为目的地总数。 第二行包括 $n$ 个 $0$ 或者 $1$ ,$0$ 代表第 $i$ 个目的地为雪山,$1$ 代表酒店。保证至少有**一个**酒店。 第三行包括 $n$ 个整数: $a_1, a_2, ... , a_n (0 <= a_i <= n)$ ,这是对于每个目的地 $i$ 的雪道描述。如果 $a_i$ 等于 $0$ ,则没有点可以到达 $i$ ,如果 $a_i$ 不等于 $0$ ,则有一条从目的地 $a_i$ 到 $i$ 的雪道。 ### 输出格式 第一行包括一个整数 $k$ ,为最多可以经过的目的地。 第二行包括 $k$ 个整数 $v_1, v_2, ... , v_k$ ,为路径。如果有多个解,你可以输出任何一个。

题目描述

Valera's finally decided to go on holiday! He packed up and headed for a ski resort. Valera's fancied a ski trip but he soon realized that he could get lost in this new place. Somebody gave him a useful hint: the resort has $ n $ objects (we will consider the objects indexed in some way by integers from $ 1 $ to $ n $ ), each object is either a hotel or a mountain. Valera has also found out that the ski resort had multiple ski tracks. Specifically, for each object $ v $ , the resort has at most one object $ u $ , such that there is a ski track built from object $ u $ to object $ v $ . We also know that no hotel has got a ski track leading from the hotel to some object. Valera is afraid of getting lost on the resort. So he wants you to come up with a path he would walk along. The path must consist of objects $ v_{1},v_{2},...,v_{k} $ ( $ k>=1 $ ) and meet the following conditions: 1. Objects with numbers $ v_{1},v_{2},...,v_{k-1} $ are mountains and the object with number $ v_{k} $ is the hotel. 2. For any integer $ i $ $ (1<=i&lt;k) $ , there is exactly one ski track leading from object $ v_{i} $ . This track goes to object $ v_{i+1} $ . 3. The path contains as many objects as possible ( $ k $ is maximal). Help Valera. Find such path that meets all the criteria of our hero!

输入输出格式

输入格式


The first line contains integer $ n $ ( $ 1<=n<=10^{5} $ ) — the number of objects. The second line contains $ n $ space-separated integers $ type_{1},type_{2},...,type_{n} $ — the types of the objects. If $ type_{i} $ equals zero, then the $ i $ -th object is the mountain. If $ type_{i} $ equals one, then the $ i $ -th object is the hotel. It is guaranteed that at least one object is a hotel. The third line of the input contains $ n $ space-separated integers $ a_{1},a_{2},...,a_{n} $ ( $ 0<=a_{i}<=n $ ) — the description of the ski tracks. If number $ a_{i} $ equals zero, then there is no such object $ v $ , that has a ski track built from $ v $ to $ i $ . If number $ a_{i} $ doesn't equal zero, that means that there is a track built from object $ a_{i} $ to object $ i $ .

输出格式


In the first line print $ k $ — the maximum possible path length for Valera. In the second line print $ k $ integers $ v_{1},v_{2},...,v_{k} $ — the path. If there are multiple solutions, you can print any of them.

输入输出样例

输入样例 #1

5
0 0 0 0 1
0 1 2 3 4

输出样例 #1

5
1 2 3 4 5

输入样例 #2

5
0 0 1 0 1
0 1 2 2 4

输出样例 #2

2
4 5

输入样例 #3

4
1 0 0 0
2 3 4 2

输出样例 #3

1
1