#include <stdio.h>
#define M 10000

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

Node T[M];
int n;

void pre(int  u);
void in(int u);
void post(int u);

int main(void){
    int i,n,k,root,l,r;
    scanf("%d",&n);
    for(i=0;i<n;i++)T[i].p=-1;
    for(i=0;i<n;i++){
        scanf("%d %d %d",&k,&l,&r);
        T[k].l=l;
        T[k].r=r;
        if(l != -1)T[l].p=k;
        if(r != -1)T[r].p = k;
    }
    for(i=0;i<n;i++){
        if(T[i].p== -1)root =i;
    }
    printf("Preorder\n");
    pre(root);
    printf("\n");
    printf("Inorder\n");
    in(root);
    printf("\n");
    printf("Postorder\n");
    post(root);
    printf("\n");
    return 0;
}

void pre(int root){
    if(root == -1)return ;
    printf(" %d",root);
    pre(T[root].l);
    pre(T[root].r);
}

void in(int root){
    if(root == -1)return ;
    in(T[root].l);
    printf(" %d",root);
    in(T[root].r);
}

void post(int root){
    if(root == -1)return ;
    post(T[root].l);
    post(T[root].r);
    printf(" %d",root);
}

