#D1781. Generalized Insertion Sort

    ID: 1480 Type: Default 3000ms 268MiB

Generalized Insertion Sort

Generalized Insertion Sort

You are given a rooted tree with N vertices. The vertices are numbered 0, 1, ..., N-1. The root is Vertex 0, and the parent of Vertex i (i = 1, 2, ..., N-1) is Vertex p_i.

Initially, an integer a_i is written in Vertex i. Here, (a_0, a_1, ..., a_{N-1}) is a permutation of (0, 1, ..., N-1).

You can execute the following operation at most 25 000 times. Do it so that the value written in Vertex i becomes i.

  • Choose a vertex and call it v. Consider the path connecting Vertex 0 and v.
  • Rotate the values written on the path. That is, For each edge (i, p_i) along the path, replace the value written in Vertex p_i with the value written in Vertex i (just before this operation), and replace the value of v with the value written in Vertex 0 (just before this operation).
  • You may choose Vertex 0, in which case the operation does nothing.

Constraints

  • 2 \leq N \leq 2000
  • 0 \leq p_i \leq i-1
  • (a_0, a_1, ..., a_{N-1}) is a permutation of (0, 1, ..., N-1).

Input

Input is given from Standard Input in the following format:

N p_1 p_2 ... p_{N-1} a_0 a_1 ... a_{N-1}

Output

In the first line, print the number of operations, Q. In the second through (Q+1)-th lines, print the chosen vertices in order.

Examples

Input

5 0 1 2 3 2 4 0 1 3

Output

2 3 4

Input

5 0 1 2 2 4 3 1 2 0

Output

3 4 3 1

inputFormat

Input

Input is given from Standard Input in the following format:

N p_1 p_2 ... p_{N-1} a_0 a_1 ... a_{N-1}

outputFormat

Output

In the first line, print the number of operations, Q. In the second through (Q+1)-th lines, print the chosen vertices in order.

Examples

Input

5 0 1 2 3 2 4 0 1 3

Output

2 3 4

Input

5 0 1 2 2 4 3 1 2 0

Output

3 4 3 1

样例

5
0 1 2 3
2 4 0 1 3
2

3 4

</p>