#include<stdio.h>

#define MAX 25
#define NIL -1

typedef struct{
  int prev,left,right;
}Node;

Node T[MAX];

void preParse(int u){
  if(u == NIL)
    return;
  printf(" %d",u);
  preParse(T[u].left);
  preParse(T[u].right);

}
void inParse(int u){
  if(u == NIL)
    return;
  inParse(T[u].left);
  printf(" %d",u);
  inParse(T[u].right);
}
void postParse(int u){
  if(u == NIL)
    return;
  postParse(T[u].left);
  postParse(T[u].right);
  printf(" %d",u);
}

int main(){
  int u,n,i,a,left,right;

  scanf("%d",&n);
  for(i = 0; i < n; i++)
    T[i].prev = NIL;
  for(i = 0; i < n; i++){
    scanf("%d %d %d",&a,&left,&right);
    T[a].left = left;
    T[a].right = right;
    if(left != NIL)
      T[left].prev = a;
    if(right != NIL)
      T[right].prev = a;    
  }
  //    NIL
  //     |
  //     2 <-
  //   /   \
  //  1     0
  // / \   / \
  //N   N N   N
  for(i = 0; i < n; i++)
    if(T[i].prev == NIL) u = i;
  
  printf("Preorder\n");
  preParse(u);
  printf("\nInorder\n");
  inParse(u);
  printf("\nPostorder\n");
  postParse(u);
  printf("\n");
  
  return 0;
}

