#include<stdio.h>

int a[25][3], pre[25], in[25], post[25], p = 0, q = 0, r = 0, list[25] = {0};

int preoder(int x){
	if(x == -1){

	}else {
		pre[p++] = x;
		if(a[x][1] != -1){
			preoder(a[x][1]);
		}
		preoder(a[x][2]);
	}
}

int inoder(int x){
	if(x == -1){

	}else if(a[x][1] != -1){
		inoder(a[x][1]);
		in[q++] = x;
		inoder(a[x][2]);
	} else {
		in[q++] = x;
		inoder(a[x][2]);
	}
}

int postoder(int x){
	if(x == -1){

	}else if(a[x][1] != -1){
		postoder(a[x][1]);
		postoder(a[x][2]);
		post[r++] = x;
	} else {
		postoder(a[x][2]);
		post[r++] = x;
	}
}

int main(){
	int n, i, j, k, c, top;

	scanf("%d", &n);
	for(i = 0; i < n; i++){
		scanf("%d %d %d", &a[i][0], &a[i][1], &a[i][2]);
		list[a[i][1]] = list[a[i][2]] = 1;
	}

	for(i = 0; i < n; i++){
		if(list[i] == 0){
			top = i;
		}
	}

	for(i = 0; i < n; i++){
		for(j = i; j < n; j++){
			if(a[i][0] > a[j][0]){
				for(k = 0; k < 3; k++){
					c = a[i][k];
					a[i][k] = a[j][k];
					a[j][k] = c;
				}
			}
		}
	}

	preoder(top);
	inoder(top);
	postoder(top);

	printf("Preorder\n");
	for(i = 0; i < n; i++){
		printf(" %d", pre[i]);
	}
	printf("\n");

	printf("Inorder\n");
    for(i = 0; i < n; i++){
		printf(" %d", in[i]);
	}
	printf("\n");

	printf("Postorder\n");
    for(i = 0; i < n; i++){
		printf(" %d", post[i]);
	}
	printf("\n");
	
	return 0;
}
