#include <stdio.h>

/*??????*/
#define NIL -1
#define MAX 100000
typedef struct{
  int p;
  int l;
  int r;
}Tree;
Tree T[MAX];
//   

void preParse(x){
  printf(" %d",x);
  if(T[x].l != NIL) preParse(T[x].l);
  if(T[x].r != NIL) preParse(T[x].r);
}

void inParse(x){
  if(T[x].l != NIL) inParse(T[x].l);
  printf(" %d",x);
  if(T[x].r != NIL) inParse(T[x].r);
}

void postParse(x){
  if(T[x].l != NIL) postParse(T[x].l);
  if(T[x].r != NIL) postParse(T[x].r);
  printf(" %d",x);
}


int main(void) {

  int n,i,v,l,r,x;
 
  scanf("%d",&n);
  for(i = 0; i < n; i++){
    T[i].p = NIL;
    T[i].l = NIL;
    T[i].r = NIL;    
  }

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

    /*Preoder?????¨???*/
    printf("Preoder\n");
    preParse(x);
    printf("\n");
    /*Inoder?????¨???*/
    printf("Inoder\n");
    inParse(x);
    printf("\n");
    /*Poostoder?????¨???*/
    printf("Postoder\n");
    postParse(x);
    printf("\n");
    return 0;
}