#include<cstdio>
#include<string>
using namespace std;
struct TreeNode{
	int data;
	TreeNode * leftChild;
	TreeNode * rightChild;
	};
void insertBST(TreeNode * &root, int data){
	TreeNode *pNewNode = new TreeNode;
	pNewNode->data = data;
	pNewNode->leftChild = NULL;
	pNewNode->rightChild=NULL;
	if(root == NULL){
		root = pNewNode;
		printf("-1\n");
		}
	else{
		TreeNode *pPre = root;
		TreeNode *pCur;
		while (true){
			if (data < pPre->data){
				pCur = pPre->leftChild;
				if(pCur == NULL){
					pPre->leftChild = pNewNode;
					printf("%d\n",pPre->data);
					break;
					}
				else{
					pPre = pCur;
					}
				}
			else{
				pCur = pPre->rightChild;
				if (pCur == NULL){
					pPre->rightChild = pNewNode;
					printf("%d\n",pPre->data);
					break;
					}
				else{
					pPre = pCur;
					}
				}
			}
		}
	}
int main(){
	int n;
	while(scanf("%d",&n) != EOF){
	TreeNode * root = NULL;
	//int array[] = {2,3,5,1,4};
	for(int i = 0; i < n; ++i){
		int num;
		scanf("%d",&num);
		insertBST(root , num);
		}
	}
	}