#include<bits/stdc++.h>
using namespace std;
const int N=1e5+5;
int n;
int fa[N],son[N][2],cnt[N];
inline void work1(int x)
{
printf("%d ",x);
if(son[x][0]!=0) work1(son[x][0]);
if(son[x][1]!=0) work1(son[x][1]);
}
inline void work2(int x)
{
if(son[x][0]!=0) work2(son[x][0]);
printf("%d ",x);
if(son[x][1]!=0) work2(son[x][1]);
}
inline void work3(int x)
{
if(son[x][0]!=0) work3(son[x][0]);
if(son[x][1]!=0) work3(son[x][1]);
printf("%d ",x);
}
int main()
{
scanf("%d",&n);
for(int i=1;i<n;i++)
{
int a,b;
scanf("%d%d",&a,&b);
fa[b]=a;
son[a][cnt[a]++]=b;
}
for(int i=1;i<=n;i++)
{
if(cnt[i]==2)
{
if(son[i][0]>son[i][1])
swap(son[i][0],son[i][1]);
}
else if(cnt[i]==1)
{
if(son[i][0]<i)
{
son[i][1]=son[i][0];
son[i][0]=0;
}
}
}
int root=0;
for(int i=1;i<=n;i++)
if(!fa[i])
{
root=i;
break;
}
work1(root);
puts("");
work2(root);
puts("");
work3(root);
return 0;
}