#include <stdio.h>
#include <stdlib.h>
int n;
int* tree;
void inorder(int idx, int maxn) {
if(idx > maxn)return;
inorder(idx*2, maxn);
printf("%d ", tree[idx]);
inorder(idx*2+1, maxn);
}
void preorder(int idx, int maxn) {
if(idx > maxn)return;
printf("%d ", tree[idx]);
preorder(idx*2, maxn);
preorder(idx*2+1, maxn);
}
void postorder(int idx, int maxn) {
if(idx > maxn)return;
postorder(idx*2, maxn);
postorder(idx*2+1, maxn);
printf("%d ", tree[idx]);
}
int main() {
char input[100];
scanf("%d\n%s", &n, input);
tree = (int*)malloc(sizeof(int)*(n+1));
for(int i = 0; i < n; i++) {
tree[i+1] = input[i] - '0';
}
printf("tree inorder : ");
inorder(1, n);
printf("\ntree preorder : ");
preorder(1, n);
printf("\ntree postorder : ");
postorder(1, n);
}