#include<stdio.h>
#include<stdlib.h>
typedef struct Node
{
int data;
struct Node *left, *right;
}Node;
Node * CreateTree(int n)
{
int a[101],i;
for(i=0;i<n;i++)
scanf("%d",&a[i]);
Node* t1;
t1=(Node*)malloc(sizeof(Node));
t1->data=a[0];
t1->left=t1->right=NULL;
for(i=1;i<n;i++)
{
Node* t2,*p=t1,*q;
t2=(Node*)malloc(sizeof(Node));
t2->data=a[i];
t2->left=t2->right=NULL;
while(p)
{
if(p->data>a[i])
{
q=p;
p=p->left;
}
else
{
q=p;
p=p->right;
}
}
if(q->data>a[i])
q->left=t2;
else
q->right=t2;
}
return t1;
}
void Preorder(Node *tree)
{
if(tree==NULL)
return ;
Preorder(tree->left);
printf("%d ",tree->data);
Preorder(tree->right);
}
int main()
{
Node *tree;
int n;
while(~scanf("%d",&n))
{
tree=CreateTree(n);
Preorder(tree);
printf("\n");
}
}