

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


typedef struct{
  int p, l, r;
  
}no;

void p(int);
void in(int);
void po(int);

no *data;

int main(){
  int i, a, o, r;

  scanf("%d",&o);
  
  data=(no *)malloc(sizeof(no)*o);
  
  for(i=0;i<o;i++){
    data[i].p=-1;
  }

  
  for(i=0;i<o;i++){
    scanf("%d",&a);
    scanf(" %d %d",&data[a].l,&data[a].r);
    data[data[a].l].p=a;
    data[data[a].r].p=a;
  }


  i=0;


  
  while(data[i].p!=-1){
    i++;
  }
  r=i;
  printf("Preorder\n");
  p(r);
  printf("\n");
  printf("Inorder\n");
  in(r);
  printf("\n");
  printf("Postorder\n");
  po(r);
  printf("\n");
  
  free(data);
  return 0;
}
void po(int p){

  if(data[p].l!=-1) po(data[p].l);
  if(data[p].r!=-1) po(data[p].r);

  printf(" %d",p);
}
  void p(int p1){
    printf(" %d",p1);

    if(data[p1].l!=-1) p(data[p1].l);
    if(data[p1].r!=-1) p(data[p1].r);
  }

  void in(int in1){
    if(data[in1].l!=-1) in(data[in1].l);

    printf(" %d",in1);

    if(data[in1].r!=-1) in(data[in1].r);
  }


