//写题最爽的还是对题意的分析呀
//http://www.cppblog.com/MatoNo1/archive/2013/03/03/192131.html
//看了别人的分析才会写的
#include <iostream>
#include<stdio.h>
#include<string>
#include<string.h>
using namespace std;
const int maxn=105;
int l[maxn],r[maxn],fa[maxn],ans[maxn];
int tot;
int root;
void solve()
{
int x=root;
while(r[x]!=-1)
x=l[x];
int t=l[x];
if(t!=-1&&l[t]==-1&&r[t]==-1)
x=t;
ans[++tot]=x;
//cout<<tot<<" x: "<<x<<endl;
if(x==root)
root=l[x];
int f=fa[x];
if(f!=-1)
l[f]=l[x],fa[l[f]]=f;
while(f!=-1)
swap(l[f],r[f]),f=fa[f];
}
int main()
{
int n;
fa[0]=-1;
memset(l,-1,sizeof(l));
memset(r,-1,sizeof(r));
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
int v;
scanf("%d",&v);
if(v<100)
l[v]=i,fa[i]=v;
else
r[v-100]=i,fa[i]=v-100;
}
for(int i=1;i<=n+1;i++)
solve();
for(int i=tot;i>=1;i--)
printf("%d ",ans[i]);
return 0;
}