E. Награждение победителей
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

На днях Алексей закончил проведение соревнования по программированию для студентов из Берляндии. n студентов приняли участие в соревновании, i-й решил ai задач. Теперь необходимо наградить некоторых участников. Алексей может вручать студентам дипломы трех степеней. Каждый студент или получит один диплом какой-либо степени, или не получит диплома совсем. Пусть cntx — количество студентов, награжденные дипломом степени x (1 ≤ x ≤ 3). Должны соблюдаться следующие условия:

  • Для каждого x (1 ≤ x ≤ 3) cntx > 0;
  • Для любых двух степеней x и y cntx ≤ 2·cnty.

Конечно, есть множество способов распределить дипломы. Пусть bi — степень диплома, который получит i-й студент (или  - 1, если i-й студент останется без диплома). Также для любого x такого, что 1 ≤ x ≤ 3, пусть cx — максимальное количество задач, решенных студентом, получившим диплом степени x, а dx — минимальное количество задач, решенных студентом, получившим диплом степени x. Алексей хочет раздать дипломы таким образом, чтобы:

  1. Если студент i решил больше задач, чем студент j, то он должен быть награжден не хуже студента j (невозможно, чтобы студент j получил диплом, а i — нет, и невозможно, чтобы оба получили диплом и bj < bi);
  2. d1 - c2 должно быть максимально;
  3. Среди всех способов максимизировать предыдущее выражение d2 - c3 должно быть максимально;
  4. Среди всех способов удовлетворить предыдущие условия d3 - c - 1 должно быть максимально, где c - 1 — максимальное количество задач, решенных студентом, не получившим диплома (или 0, если все студенты получили диплом).

Помогите Алексею найти способ наградить участников!

Входные данные

В первой строке записано одно целое число n (3 ≤ n ≤ 3000).

Во второй строке записаны n целых чисел a1, a2, ..., an (1 ≤ ai ≤ 5000).

Выходные данные

Выведите n чисел. i-е число должно равняться степени диплома, который получит i-й участник (или  - 1, если он не получит никакого диплома).

Если существует несколько оптимальных решений, выведите любое из них. Гарантируется, что ответ всегда существует.

Примеры
Входные данные
4
1 2 3 4
Выходные данные
3 3 2 1 
Входные данные
6
1 4 3 1 1 2
Выходные данные
-1 1 2 -1 -1 3