Олимпиадный тренинг

Задача . C. Секрет


Самый Великий Секрет состоит из n слов, пронумерованных натуральными числами от 1 до n. Секрет требуется разделить между k Хранителями (пронумеруем их натуральными числами от 1 до k), i-ый Хранитель получает непустое множество слов c номерами из множества Ui = (ui, 1, ui, 2, ..., ui, |Ui|). Здесь и далее будем подразумевать, что при записи элементов множества они перечисляются в порядке возрастания.

Скажем, что секрет надежно хранится, если выполняются следующие условия:

  • для любых двух индексов i, j (1 ≤ i < j ≤ k) пересечение множеств Ui и Uj — пустое множество;
  • объединение множеств U1, U2, ..., Uk — это множество (1, 2, ..., n);
  • в каждом множестве Ui его элементы ui, 1, ui, 2, ..., ui, |Ui| не образуют арифметическую прогрессию (в частности должно выполняться |Ui| ≥ 3).

Напомним, что элементы множества (u1, u2, ..., us) образуют арифметическую прогрессию, если существует такое число d, что для всех i (1 ≤ i < s) выполняется: ui + d = ui + 1. Например, элементы множеств (5), (1, 10) и (1, 5, 9) образуют арифметические прогрессии, а множеств (1, 2, 4) и (3, 6, 8) — не образуют.

Вам требуется найти разбиение множества слов на подмножества U1, U2, ..., Uk, чтобы секрет был надежно сохранен, либо указать, что искомого разбиения не существует.

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

Входные данные состоят из единственной строки, в которой записаны два целых числа n и k (2 ≤ k ≤ n ≤ 106) — количество слов в секрете и количество Хранителей. Числа разделены единственным пробелом.

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

Если не существует ни одного способа надежно хранить секрет, то выведите единственное целое число «-1» (без кавычек). Иначе выведите n целых чисел, i-ое из которых означает номер Хранителя, которому принадлежит i-ое слово секрета.

Если существует несколько решений, то выведите любое.


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

time 2000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя