#include <cstdio>
#include <iostream>
#include <algorithm>
#include <vector>

#define pb push_back
#define forn(i,n) for (int i=0;i<(int)n;i++)
 
using namespace std;
int n; int root = 0;
vector <int> g[100500];
int p[100500];

void go()
{
	int par = root;
	
	while (par != root || !g[par].empty())
	{
		if (g[par].empty()) 
		{
			cout << par << " ";
			par = p[par];
                        g[par].pop_back();
			continue;
		}
		par = *g[par].rbegin();
	}
	cout << root << endl;
}

bool cmp(int a,int b) { return a > b; }

int main() {
  cin >> n;
  forn(i,n-1)
  {
	int par; scanf("%d",&par);
	p[i+1] = par;
	g[par].pb(i+1);
  }
  forn(i,n) sort(g[i].begin(),g[i].end(),cmp);

  go();
  
  return 0;
}