#include<stdio.h>
int N,i,l,r,p;
int G[30][2],pc[30]={0};

char S[4][100]={"Preorder","Inorder","Postorder"};

void pre(int n)
{
	if(n==-1)return;
	printf(" %d",n);
	pre(G[n][0]);
	pre(G[n][1]);
	return;
}

void ino(int n)
{
	if(n==-1)return;
	ino(G[n][0]);
	printf(" %d",n);
	ino(G[n][1]);
	return;
}

void pos(int n)
{
	if(n==-1)return;
	pos(G[n][0]);
	pos(G[n][1]);
	printf(" %d",n);
	return;
}



int main()
{
	void (*funcs[])(int)={pre,ino,pos};
	scanf("%d",&N);
	for(i=0;i<N;i++)
	{
		scanf("%d%d%d",&p,&l,&r);
		pc[l]=pc[r]=1;
		G[p][0]=l;
		G[p][1]=r;
	}
	for(i=0;i<N;i++)if(!pc[i])p=i;
	for(i=0;i<3;i++)
	{
		puts(S[i]);
		(*(funcs[i]))(p);
		puts("");
	}
	return 0;
}
