//构建一颗二叉排序树,题目上保证了N个是互不相同的
#include <cstdio>
#include <iostream>
using namespace std;
int n;
int num[105];
struct node{
int value = -1;
node *left=NULL ;
node *right=NULL;
};
void createtree(node *root,int x)
{
node *p,*q;
p=root;
while(p){
if(p->value > x){//左子树
q=p;
p=p->left;
}
else if (p->value < x) {//右子树
q=p;
p=p->right;
}
}//找到当前节点放的位置
p = new node();
p->value = x;
p->left = NULL;
p->right = NULL;
if (q->value > p-> value){
q->left = p;
}
if (q->value < p->value){
q->right = p;
}
cout <<q->value<<endl;
}
int main()
{
while (scanf("%d",&n)!=EOF)
{
for (int i=0;i<n;i++)
scanf("%d",&num[i]);
node *root = new node(); // 动态申请内存
for(int i=0;i<n;i++)
{
if (i==0)
{
root->value = num[i];
root->right = NULL;
root->left = NULL;
cout<<"-1"<<endl;
}
else createtree(root,num[i]);
}
}
return 0;
}