#include <stdio.h>
#include <stdlib.h>

typedef struct TreeNode {
    int data;
    struct TreeNode* lchild;
    struct TreeNode* rchild;
} TreeNode;

TreeNode* createNode(int data) {
    TreeNode* root = (TreeNode*)malloc(sizeof(TreeNode));
    root->data = data;
    root->lchild = NULL;
    root->rchild = NULL;
    return root;
}

TreeNode* insert(TreeNode* root, int x, int father) {
    if (root == NULL) {
        root = createNode(x);
        printf("%d\n", father);
    } else if (root->data > x) {
        root->lchild = insert(root->lchild, x, root->data);
    } else {
        root->rchild = insert(root->rchild, x, root->data);
    }
    return root;
}

int main() {
    int n;
    while (scanf("%d", &n) != EOF) {
       TreeNode *root=NULL;
       for (int i=0; i<n; i++) {
            int x;
            scanf("%d",&x);
            root=insert(root, x,-1);
       }
    }
    return 0;
}