#include <bits/stdc++.h>
using namespace std;
int xx, yy, q, l, x, y, z, md, k;
int i, j, n, m, d;
int a[200500], dp[200500], pa[200500], nxt[200500];
vector<int> g[200500];
set<pair<int, int> > f;
set<pair<int, int> >::iterator itr;
struct node {
  int l;
  int r;
} t[200500];
int main() {
  cin >> n;
  for (i = 0; i < n; i++) t[i].l = t[i].r = 0;
  for (i = 0; i < n; i++) {
    scanf("%d", &x);
    if (i == 0) {
      f.insert(make_pair(x, i));
    } else {
      itr = f.upper_bound(make_pair(x, i));
      if (itr != f.end() && t[(*itr).second].l == 0) {
        t[(*itr).second].l = 1;
        printf("%d ", (*itr).first);
      } else {
        itr--;
        t[(*itr).second].r = 1;
        printf("%d ", (*itr).first);
      }
      f.insert(make_pair(x, i));
    }
  }
  return 0;
}
