#include<stdio.h>
#include<stdlib.h>
#define NIL -1
#define N 25

typedef struct{
  int pare,sib,left,right;
}Node;

void preParse(int);
void inParse(int);
void postParse(int);

Node T[N];



int main()
{
  int n=0,m,i,child,root=0,right,left;
  scanf("%d",&n);
  for(i=0;i<n;i++)
    {
      T[i].pare=NIL;
      T[i].sib=NIL;
      T[i].left=NIL;
      T[i].right=NIL;
    }

  for(i=0;i<n;i++)
    {
      scanf("%d",&m);
      
          scanf("%d",&child);
          left=child;
          scanf("%d",&right);
      
          T[right].pare=m;
          T[left].pare=m;
          T[m].left=left;
          T[m].right=right;
    }
  for(i=0;i<n;i++)
    {
      if(T[i].pare==NIL)
        root=i;
    }

  printf("Preorder\n");
  preParse(root);
  printf("\n");
  printf("Inorder\n");
  inParse(root);
  printf("\n");
  printf("Postorder\n");
  postParse(root);
  printf("\n");

  return 0;
}
    
void preParse(int u)
{
  if(u!=NIL)
    {
  printf(" %d",u);
  preParse(T[u].left);
  preParse(T[u].right);
}
}

void inParse(int u)
{
  if(u!=NIL)
    {
 inParse(T[u].left);
printf(" %d",u);
inParse(T[u].right);
}
}

void postParse(int u)
{
  if(u!=NIL)
    {
  postParse(T[u].left);
  postParse(T[u].right);
  printf(" %d",u);
}
}
