#include<stdio.h>
#include<stdlib.h>
typedef struct Node {
    int data;
    struct node *left,*right;
}node;
node *root=NULL
node* create(int num) {
    node *newnode = (node*)malloc (1*sizeof(node));
    newnode->data=num;
    newnode->left=NULL;
    newnode->right=NULL;
    return newnode; //gives address
}
node* insert(node *root, int num) {
    if(root == NULL)
        return create(num);
    if(num < root->data)
        root->left = insert(root->left, num);
    else if(num>root->data)
        root->right = insert(root->right, num);
}
void inorder(node *root){
    if(root !=NULL) {
        printf("%d",root->data);
        preorder(root->left);
        preorder(root->right);
        prinntf("%d",root->data);
    }
}
void postorder(node *root){
    if(root !=NULL) {
        printf("%d",root->data);
        preorder(root->left);
        preorder(root->right);
    }
}
int main() {
    int size,itr,num;
    scanf("%d",&size);
    for(itr=1;itr<=size;itr++) {
        scanf("%d",&num);
        root=insert(root, num);
    }
    preorder(root);
    return 0;
}