#include <stdio.h>
#define NIL -1
#define N 27

typedef struct data{
  int p,l,r;
}DATA;
DATA T[N];

void Preorder(int );
void Inorder(int );
void Postorder(int );

int main(){
  int i;
  int n;
  int id,left,right,root;
  scanf("%d",&n);
  for(i=0;i<n;i++){
    T[i].p = NIL;
  }

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

  for(i=0;i<n;i++){
    if(T[i].p == NIL ) root = i;
  }

  printf("Preorder\n");
  Preorder(root);
  printf("\n");
  
  printf("Inorder\n");
  Inorder(root);
  printf("\n");
 
  printf("Postorder\n");
  Postorder(root);
  printf("\n");
  
  return 0;
}

void Preorder(int u){
  if(u == NIL)return;
  
  printf(" %d",u);
  Preorder(T[u].l);
  Preorder(T[u].r);
}

void Inorder(int u){
  if(u == NIL)return;
 
  Inorder(T[u].l);
  printf(" %d",u);
  Inorder(T[u].r);
}
void Postorder(int u){
  if(u == NIL)return;
   
  Postorder(T[u].l);
  Postorder(T[u].r);
  printf(" %d",u);
}

