#include<bits/stdc++.h>
#define NIL -1
using namespace std;
const int maxn=30;
struct Node{
    int p,l,r;
    Node(int p=NIL){this->p=p;}
}T[maxn];
void Preorder(int cur){
    if(cur==NIL) return ;
    cout<<" "<<cur;
    Preorder(T[cur].l);
    Preorder(T[cur].r);
}
void Inorder(int cur){
    if(cur==NIL) return ;
    Inorder(T[cur].l);
    cout<<" "<<cur;
    Inorder(T[cur].r);
}
void Postorder(int cur){
    if(cur==NIL) return ;
    Postorder(T[cur].l);
    Postorder(T[cur].r);
    cout<<" "<<cur;
}
int main()
{
    int n,id,ll,rr;
    cin>>n;
    for(int i=0;i<n;i++){
        cin>>id>>ll>>rr;
        T[id].l=ll;
        T[id].r=rr;
        if(ll!=NIL) T[ll].p=id;
        if(rr!=NIL) T[rr].p=id;
    }
    int root;
    for(int i=0;i<n;i++) if(T[i].p==NIL) {root=i;break;}
    cout<<"Preorder\n";
    Preorder(root);
    cout<<"\nInorder\n";
    Inorder(root);
    cout<<"\nPostorder\n";
    Postorder(root);
    cout<<"\n";
}

