#include<stdio.h>
#define NIL -1

struct tree{
	int p,l,r;
}T[26];

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

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

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

int main(){
	int o,i,n,j,k,v,a,b,c;
	scanf("%d",&o);
	k=o;
	for( i = 0; i < o; i++) T[i].l=T[i].r=T[i].p=NIL;
	while(k--){
		scanf("%d %d %d",&a,&b,&c);
		T[a].l=b;
		T[a].r=c;
		T[b].p=a;
		T[c].p=a;
	}
	for( i = 0; i < o; i++) 
		if(T[i].p==NIL) 
			break;
	printf("Preorder\n");
	pre(i);
	printf("\nInorder\n");
	ino(i);
	printf("\nPostorder\n");
	pos(i);
	printf("\n");
}
