#include<stdio.h>
#include<stdlib.h>

#define NIL -1

typedef struct node{
  int p, r, l;
}Node;

Node T[25];

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

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

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

int main(){
  int n, i, v, l, r, root;

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

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

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

