#include<stdio.h>
#include<stdlib.h>

struct node{
    int right;
    int left;
    int parent;
};

typedef struct node Node;
#define NIL -1

Node T[25];

void preorder(int u){
    if(u==NIL)return;
    printf(" %d",u);
    preorder(T[u].left);
    preorder(T[u].right);
}

void inorder(int u){
    if(u==NIL)return;
    inorder(T[u].left);
    printf(" %d",u);
    inorder(T[u].right);
}

void postorder(int u){
    if(u==NIL)return;
    postorder(T[u].left);
    postorder(T[u].right);
    printf(" %d",u);
}



int main(){
    int n, i,id;
    int left,right;
    int root;
    scanf("%d",&n);
    for(i=0;i<n;i++)T[i].parent=NIL;
    for(i=0;i<n;i++){
        scanf("%d%d%d",&id,&left,&right);
        T[id].left=left;
        T[id].right=right;
        if(left!=NIL)T[left].parent=id;
        if(right!=NIL)T[right].parent=id;
    }
    for(i=0;i<n;i++)if(T[i].parent==NIL)root=i;
    printf("Preorder\n");
    preorder(root);
    printf("\nInorder\n");
    inorder(root);
    printf("\nPostorder\n");
    postorder(root);
    printf("\n");
    return 0;
}

