#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;
}