#include <stdio.h>

#define NIL -1
#define N 25

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

Node T[N];

void printPre(u) {
	if (u == NIL) return;
	printf(" %d",u);
	printPre(T[u].l);
	printPre(T[u].r);

	return;
}

void printIn(u) {
	if (u == NIL) return;
	printIn(T[u].l);
	printf(" %d",u);
	printIn(T[u].r);

	return;
}

void printPo(u) {
	if (u == NIL) return;
	printPo(T[u].l);
	printPo(T[u].r);
	printf(" %d",u);

	return;
}

int main() {
	int i,n;
	int id, root,l,r;

	scanf("%d", &n);

    for (i = 0; i < n; i++)
        T[i].p = NIL;
    for (i = 0; i < n; i++) {
        scanf("%d %d %d",&id,&l,&r);
        T[id].l = l;
        T[id].r = r;
        if (l != NIL) T[l].p = id;
        if (r != NIL) T[r].p = id;
    }

	for (i = 0; i < n;i++) {
		if (T[i].p == NIL) {
			root = i;
			break;
		}
	}

	printf("Preorder\n");
	printPre(root);
	printf("\nInorder\n");
	printIn(root);
	printf("\nPostorder\n");
	printPo(root);
	printf("\n");

	return 0;
}