emm
#include<iostream>
using namespace std;
struct node
{
int v;
int l,r;
};
node tree[1000005];
void xxbl(int i)
{
if(i==0)
{
return;
}
cout<<tree[i].v<<" ";
xxbl(tree[i].l);
xxbl(tree[i].r);
}
void zxbl(int i)
{
if(i==0)
{
return;
}
zxbl(tree[i].l);
cout<<tree[i].v<<" ";
zxbl(tree[i].r);
}
void hxbl(int i)
{
if(i==0)
{
return;
}
hxbl(tree[i].l);
hxbl(tree[i].r);
cout<<tree[i].v<<" ";
}
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
tree[i].v=i;
cin>>tree[i].l>>tree[i].v;
}
xxbl(1);
cout<<endl;
zxbl(1);
cout<<endl;
hxbl(1);
cout<<endl;
return 0;
}