#include <cstdio>
#include <iostream>
using namespace std;
struct TreeNode{
int data;
TreeNode* left;
TreeNode* right;
TreeNode(int d):data(d),left(NULL),right(NULL){}
};
void Insert(TreeNode*T, int d){
if(d>T->data){
if(T->right==NULL){
printf("%d\n",T->data);
T->right=new TreeNode(d);
return;
}else{
Insert(T->right,d);
}
}else{
if(T->left==NULL){
printf("%d\n",T->data);
T->left=new TreeNode(d);
return;
}else{
Insert(T->left,d);
}
}
return;
}
int main(){
int sample;
while(scanf("%d",&sample)!=EOF){
int d;
scanf("%d",&d);
printf("%d\n",-1);
TreeNode* T=new TreeNode(d);
for(int i=1;i<sample;i++){
scanf("%d",&d);
Insert(T,d);
}
}
return 0;
}