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 
import java.util.*;
import java.io.*;
public class Bmail{
	static int n;
	static ArrayList<Integer> list[];
	static int[] last;
	public static void main(String[] args)throws IOException{
		FastReader sc = new FastReader();
		BufferedWriter out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(java.io.FileDescriptor.out),"ASCII"),512);
		n = sc.nextInt();
		last = new int[n];
		list = new ArrayList[n];
		list[0] = new ArrayList<Integer>();
		for(int i=1;i<n;i++){
			list[i] = new ArrayList<Integer>();
			list[sc.nextInt()-1].add(i);
		}
		int temp = dfs(0);
		StringBuilder s = new StringBuilder();
		for(int i=0;i<n;i++){
			if(last[i] == n-1) s.append((i+1) + " ");
		}
		s.append(n + "");
		out.write(s + "");
		out.write('\n');
		out.flush();
	}
	public static int dfs(int index){
		if(list[index].isEmpty()) return index;
		else{
			for(int i=0;i<list[index].size();i++){
				int temp = dfs(list[index].get(i));
				if(last[index] < temp) last[index] = temp;
			}
			return last[index];
		}
	}
}
class FastReader{
	BufferedReader br;
	StringTokenizer st;
	public FastReader(){
		br = new BufferedReader(new InputStreamReader(System.in));
	}
	String next(){ 
		while (st == null || !st.hasMoreElements()){ 
			try{ 
				st = new StringTokenizer(br.readLine()); 
			} 
			catch (IOException  e){ 
				e.printStackTrace(); 
			} 
		} 
		return st.nextToken(); 
	}
	int nextInt(){ 
        return Integer.parseInt(next()); 
	}
    long nextLong(){ 
        return Long.parseLong(next()); 
    }
    double nextDouble(){ 
        return Double.parseDouble(next()); 
    }
    String nextLine(){ 
        String str = ""; 
        try{ 
            str = br.readLine(); 
        } 
		catch (IOException e){ 
            e.printStackTrace(); 
        } 
        return str; 
    }
}