#include <bits/stdc++.h>
using namespace std;
int n, c[3010];
struct info {
  int x, y;
};
struct as {
  int a, b, c;
} ans;
struct node {
  int x, id;
} a[3010];
inline bool cmp(node a, node b) { return a.x > b.x; }
inline info max(info a, info b) {
  if (a.x < b.x) return b;
  return a;
}
struct seg {
  int lt[12010], rt[12010];
  info mx[12010];
  inline void build(int i, int l, int r) {
    lt[i] = l;
    rt[i] = r;
    if (l == r) {
      mx[i] = (info){a[l].x - a[l + 1].x, l};
      return;
    }
    int mid = l + r >> 1;
    build(i * 2, l, mid);
    build(i * 2 + 1, mid + 1, r);
    mx[i] = max(mx[i * 2], mx[i * 2 + 1]);
  }
  inline info query(int i, int l, int r) {
    if (l <= lt[i] && r >= rt[i]) return mx[i];
    int mid = lt[i] + rt[i] >> 1;
    info ans = {-1, 0};
    if (l <= mid) ans = query(i * 2, l, r);
    if (r > mid) ans = max(ans, query(i * 2 + 1, l, r));
    return ans;
  }
} A;
inline as max(as t1, as t2) {
  if (t1.a == 0) return t2;
  if (a[t1.a].x - a[t1.a + 1].x != a[t2.a].x - a[t2.a + 1].x)
    return a[t1.a].x - a[t1.a + 1].x > a[t2.a].x - a[t2.a + 1].x ? t1 : t2;
  if (a[t1.b].x - a[t1.b + 1].x != a[t2.b].x - a[t2.b + 1].x)
    return a[t1.b].x - a[t1.b + 1].x > a[t2.b].x - a[t2.b + 1].x ? t1 : t2;
  if (a[t1.c].x - a[t1.c + 1].x != a[t2.c].x - a[t2.c + 1].x)
    return a[t1.c].x - a[t1.c + 1].x > a[t2.c].x - a[t2.c + 1].x ? t1 : t2;
}
int main() {
  cin >> n;
  for (int i = 1; i <= n; i++) scanf("%d", &a[i].x), a[i].id = i;
  sort(a + 1, a + n + 1, cmp);
  A.build(1, 1, n);
  for (int i = 1; i <= n; i++)
    for (int j = i + 1; j < n; j++)
      if (2 * (j - i) >= i && i * 2 >= j - i) {
        int lk = max(j + (max(i, j - i) + 1) / 2, j + 1),
            rk = min(j + 2 * min(i, j - i), n);
        if (lk <= rk) ans = max(ans, (as){i, j, A.query(1, lk, rk).y});
      }
  for (int i = 1; i <= ans.a; i++) c[a[i].id] = 1;
  for (int i = ans.a + 1; i <= ans.b; i++) c[a[i].id] = 2;
  for (int i = ans.b + 1; i <= ans.c; i++) c[a[i].id] = 3;
  for (int i = ans.c + 1; i <= n; i++) c[a[i].id] = -1;
  for (int i = 1; i <= n; i++) printf("%d ", c[i]);
  return 0;
}
