#include<stdio.h>


#define MAX 100000
#define N -1


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


Node T[MAX];
int a;


void pre(int);
void in(int);
void post(int);


int main()
{
  int i,b,c,left,right;
  
  scanf("%d",&a);
  
  for(i=0;i<a;i++)T[i].p=T[i].l=T[i].r=N;
  
  for(i=0;i<a;i++){
    
    scanf("%d %d %d",&c,&left,&right);
    
    T[c].l=left;
    T[c].r=right;
    
    if(left!=N)T[left].p=c;
    if(right!=N)T[right].p=c;
  }
  
  for(i=0;i<a;i++)if(T[i].p==N)b=i;
  
  printf("Preorder\n");
  pre(b);
  printf("\n");
  
  printf("Inorder\n");
  in(b);
  printf("\n");
  
  printf("Postorder\n");
  post(b);
  printf("\n");
  
  return 0;
}


void pre(int s)
{
  if(s==N)return;
  
  printf(" %d",s);
  pre(T[s].l);
  pre(T[s].r);
}


void in(int t)
{
  if(t==N)return;
  
  in(T[t].l);
  printf(" %d",t);
  in(T[t].r);
}


void post(int u)
{
  if(u==N)return;
  
  post(T[u].l);
  post(T[u].r);
  printf(" %d",u);
}

