// editor5
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct node{
    char n[100];
    int sc;
    struct node *left;
    struct node *right;
}nd;
nd *create(char n[],int sc){
    nd *newnode=(nd*)malloc(sizeof(nd));
    strcpy(newnode->n,n);
    newnode->sc=sc;
    newnode->left=NULL;
    newnode->right=NULL;
    return newnode;
}
nd *insert(nd *root,char n[],int sc){
    if(root==NULL){
        return create(n,sc);
    }
    if(sc<root->sc){
        root->left=insert(root->left,n,sc);
    }
    else{
        root->right=insert(root->right,n,sc);
    }
    return root;
}
void post(nd *root){
    if(root==NULL){
        return;
    }
    post(root->left);
    post(root->right);
    printf("%s %d",root->n,root->sc);
}
void pre(nd *root){
    if(root==NULL){
        return;
    }
    printf("%s %d",root->n,root->sc);
    pre(root->left);
    pre(root->right);
    
}
void in(nd *root){
    if(root==NULL){
        return;
    }
    in(root->left);
    printf("%s %d",root->n,root->sc);
    in(root->right);
    
}
int main(){
    int sc,a;
    scanf("%d ",&a);
    if(a<0){
        printf("Invalid input");
        return 0;
    }char n[100];
    for(int i=0;i<a;i++){
        scanf("%s",n[i]);
        create(n,sc);
    }
    insert(root,n,sc);
    in(nd *root);
    printf("\n");
    pre(nd *root);
    printf("\n");
    post(nd *root);
    printf("\n");
   return 0; 
    
}