C. Секрет
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
stdin
вывод
stdout

Самый Великий Секрет состоит из 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-ое слово секрета.

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

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