#include<stdio.h>
#define N 25
#define NIL -1
int Pre(int t),In(int t),Post(int t);
struct Node{
  int p,l,r;
};
struct Node A[N];

int main(){
  int i,j,n,id,h,d;
  scanf("%d",&n);
  for(i=0;i<n;i++){
    A[i].p=NIL;
    A[i].l=NIL;
    A[i].r=NIL;
  }
  for(i=0;i<n;i++){
    scanf("%d %d %d",&id,&h,&d);
    A[h].p=id;
    A[d].p=id;
    A[id].l=h;
    A[id].r=d;
  }
  for(i=0;i<n;i++){
    if(A[i].p==NIL)
      break;
  }
  printf("Preorder\n");
  Pre(i);
  printf("\n");
  printf("Inorder\n");
  In(i);
  printf("\n");
  printf("Postorder\n");
  Post(i);
  printf("\n");
  return 0;
  }
  int Pre(int t){
    printf(" %d",t);
    if(t!=NIL){
      if(A[t].l!=NIL)Pre(A[t].l);
      if(A[t].r!=NIL)Pre(A[t].r);
    }
    return 0;
  }
  int In(int t){
    if(t!=NIL){
      if(A[t].l!=NIL)
        In(A[t].l);
      printf(" %d",t);
      if(A[t].r!=NIL)
        In(A[t].r);
    }
    return 0;
  }

  int Post(int t){
    if(t!=NIL){
      if(A[t].l!=NIL)
        Post(A[t].l);
      if(A[t].r!=NIL)
        Post(A[t].r);
    }
    printf(" %d",t);
    return 0;
  }

