#include<stdio.h>
#define N 26

void pre(int);
void ino(int);
void pos(int);
??
struct Node{
 int v, a, b; 
};

struct Node G[N];

int n, i, l, r, p;

char S[4][100]={"Preorder","Inorder","Postorder"};

int main(){
????????void (*funcs[])(int)={pre,ino,pos};
????????scanf("%d",&n);
????????for(i=0;i<n;i++)
????????{
????????????????scanf("%d%d%d",&p,&l,&r);
????????????????G[l].v=G[r].v=1;
????????????????G[p].a=l;
????????????????G[p].b=r;
????????}
????????for(i=0;i<n;i++)if(!G[i].v)p=i;
????????for(i=0;i<3;i++)
????????{
????????????????puts(S[i]);
????????????????(*(funcs[i]))(p);
????????????????puts("");
????????}
????????return 0;
}

void pre(int n)
{
????????if(n==-1)return;
????????printf(" %d",n);
????????pre(G[n].a);
????????pre(G[n].b);
????????return;
}

void ino(int n)
{
????????if(n==-1)return;
????????ino(G[n].a);
????????printf(" %d",n);
????????ino(G[n].b);
????????return;
}

void pos(int n)
{
????????if(n==-1)return;
????????pos(G[n].a);
????????pos(G[n].b);
????????printf(" %d",n);
????????return;
}