#include <stdio.h>
#define NIL -1
void preorder(int u);
void inorder(int u);
void postorder(int u);

typedef struct Node{
int p;
int l;
  int r;
} node;
  
node T[10005];
int n;

int main(){
  int i,v,left,right,root=0;

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

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

  //print
  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);
}