Once upon a time there was only one router in the well-known company Bmail. Years went by and over time new routers were purchased. Every time they bought a new router, they connected it to one of the routers bought before it. You are given the values p_i — the index of the router to which the i-th router was connected after being purchased (p_i < i).

There are n routers in Boogle in total now. Print the sequence of routers on the path from the first to the n-th router.

Input

The first line contains integer number n (2 ≤ n ≤ 200000) — the number of the routers. The following line contains n-1 integers p_2, p_3, ..., p_n (1 ≤ p_i < i), where p_i is equal to index of the router to which the i-th was connected after purchase.

Output

Print the path from the 1-st to the n-th router. It starts with 1 and ends with n. All the elements in the path should be distinct.

Examples

Input

8
1 1 2 2 3 2 5


Output

1 2 5 8 

Input

6
1 2 3 4 5


Output

1 2 3 4 5 6 

Input

7
1 1 2 3 4 3


Output

1 3 7 
// May The Father of Understanding Guide Us
import java.util.*;
import java.io.*;
public class Main
{
  static boolean [] visited = new boolean[200000+1];
  static int [] parent = new int[200000+1];
  static void dfs(int u, ArrayList<ArrayList<Integer>> arr)
  {
    visited[u] = true;
    
    for(Integer i: arr.get(u))
    {
      if(!visited[i])
      {
        parent[i] = u;
        dfs(i, arr);
      }
    }
  }
  
  public static void main(String[] args)
  {
    Scanner read = new Scanner(System.in);
    
    int n = read.nextInt();
    ArrayList<ArrayList<Integer>> arr = new ArrayList<ArrayList<Integer>>();
    ArrayList<Integer> path = new ArrayList<Integer>();
    
    for(int i = 0; i<n+1; i++)
    {
      arr.add(new ArrayList<Integer>());
    }
    
    for(int i = 0; i<n-1; i++)
    {
      int u = read.nextInt();
      
      arr.get(i+2).add(u);
      arr.get(u).add(i+2);
    }
    
    for(int i = 1; i<=n; i++)
    {
      if(!visited[i])
      {
        dfs(i, arr);
      }
    }
    
    int cur = n;
    path.add(1);
    path.add(n);
    while(parent[cur] != 1)
    {
      path.add(parent[cur]);
      cur = parent[cur];
    }
    
    Collections.sort(path);
    for(int i = 0; i<path.size(); i++)
    {
      System.out.print(path.get(i)+" ");
    }
  }
}