Please subscribe to the official Codeforces channel in Telegram via the link: https://t.me/codeforces_official.
×

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-2018 Mike Mirzayanov

The only programming contests Web 2.0 platform

Server time: Dec/13/2018 05:55:40 (d2).

Desktop version, switch to mobile version.

Supported by

User lists

Name |
---|