#include<bits/stdc++.h>
using namespace std;
#define maxn 10010
struct node
{
int data;
int lchild;
int rchild;
}Node[maxn];
int idx=0;
int root = -1;
int newNode(int v)
{
Node[idx].data=v;
Node[idx].lchild = -1;
Node[idx].rchild = -1;
return idx++;
};
void insert(int &root,int upper,int x)
{
if(root == -1)
{
root = newNode(x);
if(idx==0)
{
printf("-1\n");
}
else
{
printf("%d\n",upper);
}
return;
}
if(Node[root].data>x)
{
upper = Node[root].data;
insert(Node[root].lchild,upper,x);
}
else
{
upper = Node[root].data;
insert(Node[root].rchild,upper,x);
}
}
int main()
{
int N;
cin>>N;
for(int i=0;i<N;i++)
{
int temp;
cin>>temp;
insert(root,-1,temp);
}
}