#include<stdio.h>
#define N 25
typedef struct{
  int right;
  int left;
  int parent;
}Node;

Node T[N];

void preorder(int id){
  printf(" %d",id);
  if(T[id].left!=-1) preorder(T[id].left);
  if(T[id].right!=-1) preorder(T[id].right);
}

void inorder(int id){
  if(T[id].left!=-1) inorder(T[id].left);
  printf(" %d",id);
  if(T[id].right!=-1) inorder(T[id].right);
}

void postorder(int id){
  if(T[id].left!=-1) postorder(T[id].left);
  if(T[id].right!=-1) postorder(T[id].right);
  printf(" %d",id);
}

int main(){
  int n,i;
  int id;
  scanf("%d",&n);
  for(i=0;i<n;i++) T[i].parent = T[i].left = T[i].right = -1;
  for(i=0;i<n;i++){
    scanf("%d",&id);
    scanf("%d%d",&T[id].left,&T[id].right);
    T[T[id].left].parent = id;
    T[T[id].right].parent = id;
  }
  printf("Preorder\n");
  for(i=0;i<n;i++){
    if(T[i].parent == -1) preorder(i);
  }
  printf("\n");
  printf("Inorder\n");
  for(i=0;i<n;i++){
    if(T[i].parent == -1) inorder(i);
  }
  printf("\n");
  printf("Postorder\n");
  for(i=0;i<n;i++){
    if(T[i].parent == -1) postorder(i);
  }
  printf("\n");
  return 0;
}