#include <stdio.h>
#include <stdlib.h>

typedef struct Node
{
        int data;
            struct Node *left, *right;
} Node;

int deleted = 0;

Node *createNode(int data)
{
        Node *newNode = (Node *)malloc(sizeof(Node));
            newNode->data = data;
                newNode->left = newNode->right = NULL;
                    return newNode;
}

Node *addNode(Node *node, int data)
{
        if (node == NULL)
                return createNode(data);
                    if (data < node->data)
                        {
                                    node->left = addNode(node->left, data);
                        }
                            else
                                {
                                            node->right = addNode(node->right, data);
                                }
                                    return node;
}

Node *searchNode(Node *node, int data)
{
        if (data == node->data || node == NULL)
                return node;
                    if (data < node->data)
                        {
                                    return search(node->left, data);
                        }
                            else
                                {
                                            return search(node->right, data);
                                }
}

Node *maxNode(Node *node)
{
        while (node->right != NULL)
            {
                        node = node->right;
            }
                return node;
}

Node *minNode(Node *node)
{
        while (node->left != NULL)
            {
                        node = node->left;
            }
                return node;
}

void inOrder(Node *node){
        if(node==NULL)return;
            inOrder(node->left);
                printf("%d ", node->data);
                    inOrder(node->right);
}

void preOrder(Node *node){
        if(node==NULL)return;
            printf("%d ", node->data);
                preOrder(node->left);
                    preOrder(node->right);
}

void postOrder(Node *node){
        if(node==NULL)return;
            postOrder(node->left);
                postOrder(node->right);
                    printf("%d ", node->data);
}

int main()
{
        int n, data;
            scanf("%d", &n);
                if (n < 0)
                    {
                                printf("Invalid input");
                                        return 0;
                    }
                        Node *root = NULL;
                            for (int i = 0; i < n; i++)
                                {
                                            scanf("%d", &data);
                                                    root = addNode(root, data);
                                }
                                    inOrder(root);
                                    return 0;
}