Package for this problem was not updated by the problem writer or Codeforces administration after we’ve upgraded the judging servers. To adjust the time limit constraint, solution execution time will be multiplied by 2. For example, if your solution works for 400 ms on judging servers, then value 800 ms will be displayed and used to determine the verdict.

Virtual contest is a way to take part in past contest, as close as possible to participation on time. It is supported only ACM-ICPC mode for virtual contests.
If you've seen these problems, a virtual contest is not for you - solve these problems in the archive.
If you just want to solve some problem from a contest, a virtual contest is not for you - solve this problem in the archive.
Never use someone else's code, read the tutorials or communicate with other person during a virtual contest.

No tag edit access

B. Resort

time limit per test

2 secondsmemory limit per test

256 megabytesinput

standard inputoutput

standard outputValera'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:

- Objects with numbers
*v*_{1},*v*_{2}, ...,*v*_{k - 1}are mountains and the object with number*v*_{k}is the hotel. - For any integer
*i*(1 ≤*i*<*k*), there is exactly one ski track leading from object*v*_{i}. This track goes to object*v*_{i + 1}. - The path contains as many objects as possible (
*k*is maximal).

Help Valera. Find such path that meets all the criteria of our hero!

Input

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*.

Output

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.

Examples

Input

5

0 0 0 0 1

0 1 2 3 4

Output

5

1 2 3 4 5

Input

5

0 0 1 0 1

0 1 2 2 4

Output

2

4 5

Input

4

1 0 0 0

2 3 4 2

Output

1

1

Codeforces (c) Copyright 2010-2017 Mike Mirzayanov

The only programming contests Web 2.0 platform

Server time: May/29/2017 18:21:08 (c4).

Desktop version, switch to mobile version.
User lists

Name |
---|