#include <iostream>
using namespace std;
struct TreeNode{
    int data;
    TreeNode* leftChild;
    TreeNode* rightChild;
};
TreeNode* func(TreeNode* root,int x,int father){
    if(root==NULL){
        root=(TreeNode*)malloc(sizeof(TreeNode));
        root->data=x;
        printf("%d\n",father);
    }
    else if(x<root->data) root->leftChild=func(root->leftChild,x,root->data);
    else root->rightChild=func(root->rightChild,x,root->data);
    return root;
}
int main(){
    int n,x;
    while(scanf("%d",&n)!=EOF){
        TreeNode* root=NULL;
        for(int i=0;i<n;i++){
            cin>>x;
            root=func(root,x,-1);
        }
    }
    return 0;
}