#include<cstdio>
#include<string>
struct TreeNode {
int data;
TreeNode* LChild;
TreeNode* RChild;
};
void InsertBST(TreeNode*& root, int data) {
TreeNode* pa = new TreeNode;
pa->data = data;
pa->LChild = NULL;
pa->RChild = NULL;
if (root == NULL) {
root = pa;
printf("-1\n");
} else {
TreeNode* ppre = root;
TreeNode* pcur;
while (true) {
if (data < ppre->data) {
pcur = ppre->LChild;
if (pcur == NULL) {
ppre ->LChild = pa;
printf("%d\n", ppre->data);
break;
} else {
ppre = pcur;
}
} else {
pcur = ppre->RChild;
if (pcur == NULL) {
ppre->RChild = pa;
printf("%d\n", ppre->data);
break;
} else {
ppre = pcur;
}
}
}
}
}
int main() {
TreeNode* root = NULL;
int n ;
scanf("%d", &n);
for (int i = 0 ; i < n; ++i) {
int arr;
scanf("%d", &arr);
InsertBST(root, arr);
}
}