#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 = 0;
         return n;
    }
    if (v < n->d)n->l=l(n->l,v);
    else if (v>n->d) n->r=l(n->,v);
    return n;
}
void O(N*n){
    if (!n)return;
    O(n->l);printf("%d\n",n->d);O(n->r;
}
int main() {
    int n,v;N* r =O;
    if (scanf("%d",&n)!=1 || n<0)return
printf("Invalid input\n"),O;
    if (!n) return printf("Tree is Empty\n"),O;
    for (int i=O; i<n;i++)
     if(scanf("%d",&v)!=1)
        return printf("Invalid input\n"),O;
     else r =l(r,v);
    O(r);
    return O;
}