#include <bits/stdc++.h>
#include<cmath>
using namespace std;
int n;
unordered_map<int, vector<int>>a;
vector<int>l(1010),r(1010);
vector<bool>hf(1010);

void PreOrder(int root) 
{
    cout<<root<<" ";
    if(l[root]!=0)PreOrder(l[root]);
    if(r[root]!=0)PreOrder(r[root]);
}
void InOrder(int root)
{
    if(l[root]!=0)InOrder(l[root]);
    cout<<root<<" ";
    if(r[root]!=0)InOrder(r[root]);
}
void ReOrder(int root)
{
    if(l[root]!=0)ReOrder(l[root]);
    if(r[root]!=0)ReOrder(r[root]);
    cout<<root<<" ";
}

int main() {
    cin>>n;
    for(int i=1;i<=n-1;i++)
    {
        int x,y;
        cin>>x>>y;
        a[x].push_back(y);
        hf[y]=true;
    }
    int root=-1;
    for(int i=1;i<=n;i++)
    {
        if(!hf[i])
        {
            root=i;
        }
        if(a[i].size()==1)
        {
            if(a[i][0]>i)
            {
                l[i]=a[i][0];
            }
            else{
                r[i]=a[i][0];
            }
        }
        else if(a[i].size()==2)
        {
            l[i]=min(a[i][0],a[i][1]);
            r[i]=max(a[i][0],a[i][1]);
        }
    }
    PreOrder(root);
    cout<<endl;
    InOrder(root);
    cout<<endl;
    ReOrder(root);
    return 0;
}