#include
using namespace std;
const int maxn=10010;
int num[maxn];
typedef struct tree
{
int data;
tree *lc,*rc;
} tree,*Tree;
void Insert(Tree &T,int key)
{
if(T==NULL)
{
T=new tree;
T->lc=T->rc=NULL;
T->data=key;
return ;
}
if(T)
{
if(key > T->data)
{
Insert(T->rc,key);
}
else if (key < T->data)
{
Insert(T->lc,key);
}
}
}
int top;
void midout(Tree &T)
{
if(T)
{
midout(T->lc);
///cout<data<<" ";
top++;
num[top]=T->data;
midout(T->rc);
}
}
void lastout(Tree &T)
{
if (T)
{
lastout(T->lc);
lastout(T->rc);
cout<data<<" ";
}
}
int main()
{
int n,i,key;
Tree T;
while (cin>>n)
{
top=0;
T=NULL;
for (i=1; i<=n; i++)
{
cin>>key;
Insert(T,key);
}
midout(T);
for (i=1; i<=n; i++)
{
cout<<num[i]<<" ";
}
}
return 0;
}