#include<cstdio>
#include<iostream>
using namespace std;
int flag;
struct node{
int data;
node *lc,*rc;
node(int data=0,node *lc=NULL,node *rc=NULL):data(data),lc(lc),rc(rc){};
};
//建二叉排序树
void create(int t,node *&root){
if(root==NULL) root=new node(t);
else if(t< root->data) create(t,root->lc);
else create(t,root->rc);
}
//先序遍历
void preorder(node *root){
if(root){
if(flag!=0) cout<<" ";
cout<<root->data;
flag=1;
preorder(root->lc);
preorder(root->rc);
}
}
int main(){
int n;
while(cin>>n){
int t;
node *root=NULL;
for(int i=0;i<n;i++) cin>>t,create(t,root);
flag=0;
preorder(root);
cout<<endl;
}
return 0;
}