#include<stdio.h>
#define N 100000
#define NIL -1

typedef struct{
    int p;
    int l;
    int r;
} Node;

void Preorder(int);
void Inorder(int);
void Postorder(int);

int n;
Node node_all[N];

int main(){
    int i,id,l,r,root;

    scanf("%d",&n);

    for(i=0;i<n;i++){
        node_all[i].p = NIL;
    }

    for(i=0;i<n;i++){
        scanf("%d%d%d",&id,&l,&r);
        node_all[id].l = l;
        node_all[id].r = r;
        if(l != NIL){
            node_all[l].p = id;
        }
        if(r != NIL){
            node_all[r].p = id;
        }
    }

    for(i=0;i<n;i++){
        if(node_all[i].p == NIL){
            root = i;
        }
    }

    printf("Preorder\n");
    Preorder(root);
    printf("\n");
    printf("Inorder\n");
    Inorder(root);
    printf("\n");
    printf("Postorder\n");
    Postorder(root);
    printf("\n");

    return 0;
}

void Preorder(int u){
    if(u == NIL){
        return;
    }
    printf(" %d",u);
    Preorder(node_all[u].l);
    Preorder(node_all[u].r);
}

void Inorder(int u){
    if(u == NIL){
        return;
    }
    Inorder(node_all[u].l);
    printf(" %d",u);
    Inorder(node_all[u].r);
}

void Postorder(int u){
    if(u == NIL){
        return;
    }
    Postorder(node_all[u].l);
    Postorder(node_all[u].r);
    printf(" %d",u);
}
