#include <iostream>
using namespace std;
struct node{
int value,leftid,rightid;
}num[1005];
void insert_value(int id){
int root=0;
bool find_place=0;
while(!find_place){
if(num[id].value<num[root].value){
if(num[root].leftid==-1){
num[root].leftid=id;
find_place=1;
}
else root=num[root].leftid;
}
else{
if(num[root].rightid==-1){
num[root].rightid=id;
find_place=1;
}
else root=num[root].rightid;
}
}
}
void preorder(int root){
if(root==-1)return;
cout<<num[root].value<<' ';
preorder(num[root].leftid);
preorder(num[root].rightid);
}
int main(int argc, char** argv) {
int n;
while(cin>>n){
for(int i=0;i<n;i++){
num[i].leftid=-1;
num[i].rightid=-1;
}
cin>>num[0].value;
for(int i=1;i<n;i++){
cin>>num[i].value;
insert_value(i);
}
preorder(0);
cout<<'\n';
}
return 0;
}