#include <stdio.h>
#include <math.h>
#include <string.h>
#include <stdlib.h>
#define rad M_PI/3
#define N 200001
#define Max 10000
#define NTL -1
typedef struct{
    int left,right;
}Node;
Node T[N];
int n;
char root[N];
void previsit(int p){
    printf(" %d",p);
    if(T[p].right != NTL) previsit(T[p].right);
    if(T[p].left != NTL) previsit(T[p].left);
}
void invisit(int p){
    if(T[p].left != NTL) invisit(T[p].left);
    printf(" %d",p);
    if(T[p].right!=NTL) invisit(T[p].right);
}
void postvisit(int p){
    if(T[p].left!=NTL) postvisit(T[p].left);
    if(T[p].right!=NTL) postvisit(T[p].right);
    printf(" %d",p);
}
int main()
{
    int i,r;
    scanf("%d",&n);
    memset(root,1,n);
    for(i=0;i<n;i++){
        T[i].left=T[i].right=NTL;
    }
    for(i=0;i<n;i++){
        int id,l,r;
        scanf("%d%d%d",&id,&l,&r);
        T[id].left=l;
        T[id].right=r;
        root[l]=root[r]=0;
    }
    for(i=0;i<n;i++)
        if(root[i]) r=i;
    printf("Preorder\n");
    previsit(r);
    printf("\n");
    printf("Inorder\n");
  invisit(r);
  printf("\n");
  printf("Postorder\n");
  postvisit(r);
  printf("\n");
  return 0;
}
