#include<stdio.h>

struct Nos{int p,l,r,s;}T[50];
int t ;
void printp(int u){
if(u == -1){return ;}
printf(" %d",u);
printp(T[u].l);
printp(T[u].r);
}
void printq(int u){
if(u == -1){return ;}
printq(T[u].l);
printf(" %d",u);
printq(T[u].r);
}
void printt(int u){
if(u == -1){return ;}
printt(T[u].l);
printt(T[u].r);
printf(" %d",u);
}
int main(){
int n , a , b , c , q;
scanf("%d",&n);
for(int i = 0 ; i < n ; i++){T[i].p = -1 ; T [i].r = -1 ; T[i].l = -1 ; T[i].s = -1 ;}
for(int i = 0 ; i <n ; i++){
    scanf("%d%d%d",&a,&b,&c);
    T[a].l = b; T[a].r = c;
    if(b != -1)T[b].p = a; T[b].s = c;
    if(c != -1)T[c].p = a; T[c].s = b;
}
for(int i = 0 ; i < n ;i++){
    if(T[i].p = -1){q = i; break ;}
}
printf("Preorder\n");
printp(q);
printf("\nInorder\n");
printq(q);
printf("\nPostorder\n");
printt(q);
return 0;
}