#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;
}