#include <bits/stdc++.h>
using namespace std;
struct nod {
  int fiu_st, fiu_dr;
};
map<int, nod> mapa;
set<int> v;
set<int>::iterator a, b;
int main() {
  int n, x;
  scanf("%d%d", &n, &x);
  v.insert(x);
  while (--n) {
    scanf("%d", &x);
    b = v.upper_bound(x);
    a = b;
    --a;
    if (b == v.end()) {
      printf("%d ", *a);
      mapa[*a].fiu_dr = x;
      v.insert(x);
      continue;
    }
    if (b == v.begin()) {
      printf("%d ", *b);
      mapa[*b].fiu_st = x;
      v.insert(x);
      continue;
    }
    if (mapa[*a].fiu_dr != 0) {
      printf("%d ", *b);
      mapa[*b].fiu_st = x;
      v.insert(x);
      continue;
    } else {
      printf("%d ", *a);
      mapa[*a].fiu_dr = x;
      v.insert(x);
      continue;
    }
  }
  return 0;
}
