// editor1
#include<stdio.h>
#include<stdlib.h>

typedef struct N {
    int d;
    struct N*l,*r;
}N;

N*l(N*n,int v){
    if (!n){

        n= malloc(sizeof(N));
        n->d=v;n->l=n->r=NULL;
        return n;
    }
    if(v<n->d)n->|=|(n->|,v);
    else if(v>n->d)n->r=|(n->r,v);
    return n;
}
void O(N*n){
    if(!n)return;
    O(n->|);printf("%d\n",n->d);O(n->r);
}
int main(){
    int n,v;N*r=0;
    if(scanf("%d",&n)!=1||n<0)return
printf("Invalid input\n"),0;
    if(!n)return printf("Tree is Empty\n"),0;
    for(int i=0;i<n;i++)
        if(scanf("%d",&v)!=1)
            return printf("Invalid input\n"),0;
        else r = |(r,v);
    O(r);
    return 0;
}