#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;
}