2021 VI Интеллектуальная олимпиада ПФО
A. Рудольф и ОВД
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Недавно Рудольф сдавал экзамен по Очень Важной Дисциплине, в котором был Самый Важный Вопрос. Ответом на вопрос может быть только строка из строчных латинских букв. Но Рудольфу не повезло, и он дал неверный ответ. Рудольф знает, что перед проверкой экзамена все ответы загружаются в базу данных, к которой у Рудольфа есть доступ.

Рудольфу доступны следующие команды:

  • удалить символ из начала или с конца строки, данная команда занимает $$$2$$$ единицы времени;
  • добавить символ в начало или в конец строки, данная команда занимает $$$2$$$ единицы времени;
  • заменить любой символ строки на противоположный (например, «a» на «z», «b» на «y» и так далее), данная команда занимает $$$1$$$ единицу времени.

Рудольф боится не сдать экзамен и хочет успеть исправить ответ до того, как преподаватель будет проверять его, поэтому он хочет исправить ответ на правильный как можно быстрее. Помогите Рудольфу сделать это.

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

Первая строка содержит целые числа $$$N$$$ и $$$M$$$ ($$$1 \le N, M \le 3000$$$) — длина строки, являющейся ответом Рудольфа, и длина строки, являющейся верным ответом.

Вторая строка содержит последовательность $$$S_1$$$, состоящую из $$$N$$$ строчных латинских букв, — ответ, данный Рудольфом.

Третья строка содержит последовательность $$$S_2$$$, состоящую из $$$M$$$ строчных латинских букв — верный ответ.

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

Выведите одно целое число — минимальное время, которое требуется, чтобы преобразовать ответ Рудольфа в верный ответ.

Примеры
Входные данные
7 6
zabxdda
abcdxy
Выходные данные
11
Входные данные
7 7
haransp
saransk
Выходные данные
2
Примечание

В первом тесте мы можем получить ответ, удалив из строки один символ в начале («z») и два в конце («a» и «d»), заменив четвёртый символ («x» на «c»), и добавив в конец два символа («x» и «y»).

B. Рудольф и генераторы тьмы
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Рудольф попал в противоположное измерение, где всегда светло, а вместо лампочек используют генераторы тьмы, расположенные на огромной прямоугольной площадке, представляющей собой клетчатое поле. Каждый генератор характеризуется координатами клетки ($$$X_i$$$, $$$Y_i$$$), в которой он расположен, и мощностью $$$D_i$$$. В клетке ($$$X_i$$$, $$$Y_i$$$) генератор создает тьму, равную $$$D_i$$$; в клетках вокруг генератора (в восьми соседних клетках; клетка является соседней, если граничит с текущей по стороне или по углу), создается тьма равная $$$D_i-1$$$, в клетках вокруг этих клеток тьма равна $$$D_i-2$$$ и так далее, пока тьма не достигнет нуля (смотрите пример в примечании). Если на какую-то клетку воздействуют нескольких генераторов, то их тьма складывается.

Рудольф хотел отдохнуть в тени, но внезапно обнаружил, что в этом измерении он существует сразу в форме $$$M$$$ тёмных Рудольфов. Каждый из них имеет порог тьмы, при котором он может существовать. То есть каждому Рудольфу нужно находиться в клетке, в которой тьма не меньше определённого значения. В каждой клетке может находиться только один тёмный Рудольф. Помогите Рудольфу разместить свои сущности либо выясните, что это невозможно.

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

Первая строка содержит число $$$N$$$ $$$(1 \leq N \leq 1000)$$$ — количество генераторов тьмы.

Следующие $$$N$$$ строк содержат по три целых числа $$$X_i$$$, $$$Y_i$$$, $$$D_i$$$ $$$(0 \leq X_i, Y_i \leq 1000)$$$, $$$(1 \leq D_i \leq 1000)$$$ — координаты и мощности генераторов соответственно.

Следующая строка содержит число $$$M$$$ $$$(1 \leq M \leq 1000)$$$ — количество темных Рудольфов.

Следующая строка содержит $$$M$$$ целых чисел $$$R_j$$$ $$$(1 \leq R_j \leq 100000)$$$ — минимальное количество тьмы, в которой может существовать $$$j$$$-й тёмный Рудольф.

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

Если разместить всех Рудольфов невозможно, выведите «NO».

В противном случае выведите «YES», затем выведите $$$M$$$ строк. В каждой строке выведите два целых числа $$$X_i$$$, $$$Y_i$$$ $$$(0 \leq X_i, Y_i \leq 1000)$$$ — координаты $$$i$$$-го Рудольфа. Если ответов несколько, выведите любой.

Примеры
Входные данные
2
1 1 3
4 6 2
12
2 2 2 1 2 2 3 1 2 2 2 2
Выходные данные
YES
1 0
4 6
2 2
4 7
1 2
0 2
1 1
3 7
2 1
0 1
0 0
2 0
Входные данные
3
0 0 5
3 0 4
5 5 7
5
6 3 9 2 9
Выходные данные
YES
1 1
1 0
2 2
3 2
2 1
Входные данные
1
2 2 3
4
2 3 3 2
Выходные данные
NO
Примечание

Пример первого теста приведен на рисунке. Синие клетки — расположение генераторов. Цифры обозначают мощность тьмы в клетках.

C. Рудольф и здоровый образ жизни
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Рудольф решил заняться своим здоровьем. Он прочитал, что ходьба очень полезна, и купил фитнес-браслет, чтобы отслеживать свои успехи. В течение $$$N$$$ дней браслет считал, сколько шагов $$$S_i$$$ за $$$i$$$-й день сделал Рудольф.

Через некоторое время ему захотелось визуализировать свой прогресс, и он расположил на координатной плоскости точки $$$(i, S_i)$$$. Взглянув на получившийся график, Рудольф понял, что отдельно взятые точки не очень репрезентативны. Тогда он решил построить прямую по следующим правилам. Для прямой $$$F(X) = AX + B$$$ он ввёл величину ошибки $$$E = \sum\limits_{i=1}^N{(S_i - F(i)) ^ 2}$$$. Очевидно, чем меньше величина ошибки, тем правильнее прямая покажет прогресс Рудольфа. Но порой точки так сильно отличались, что даже оптимальная прямая казалась ему недостаточно удачной. Тогда Рудольф подумал, почему бы не построить несколько прямых. Он решил разбить весь массив имеющихся у него измерений на несколько непрерывных и непересекающихся частей, для каждой из них построить прямую и посчитать суммарную ошибку. Но чтобы не дробить массив слишком сильно, Рудольф ввёл дополнительный штраф $$$C$$$ за каждую отдельную часть. Он получил следующую формулу ошибки для своей системы оценки успехов: $$$M \cdot C + \sum\limits_{i=1}^M{E_i}$$$, где $$$M$$$ — количество частей, на которые разбит массив данных, а $$$E_i$$$ — величина ошибки $$$i$$$-й части. Такая формула полностью устроила Рудольфа. Но минимизировать эту ошибку оказалось непростой задачей, поэтому он просит вас помочь ему с этим.

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

Первая строка содержит два целых числа $$$N$$$ и $$$C$$$ ($$$1 \le N \le 5000, 1 \le C \le 10 ^ 6$$$) — количество дней, в течение которых велись записи, и штраф за разбиение соответственно.

Вторая строка содержит $$$N$$$ целых чисел $$$S_i$$$ ($$$1 \le S_i \le 10^6$$$) — количество шагов, сделанных Рудольфом в $$$i$$$-й день.

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

Выведите одно вещественное число — минимальную суммарную ошибку, которую можно получить по формуле Рудольфа.

Ваш ответ будет засчитан, если относительная или абсолютная погрешность не будет превышать $$$10^{-6}$$$. Формально если $$$a$$$ — ваш ответ, а $$$b$$$ — ответ жюри, то он будет засчитан, если $$$\frac{|a-b|}{max(b,1)} \leq 10^{-6}$$$.

Примеры
Входные данные
4 5
2 1 4 3
Выходные данные
8.2000000000
Входные данные
4 1
2 1 4 3
Выходные данные
2.0000000000
Примечание

В первом примере оптимальный ответ достигается, если провести одну прямую $$$y = 0.6x + 1$$$ через все точки.

Во втором примере оптимально будет разбить массив точек на две части по две точки.

D1. Рудольф и новая машина
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Рудольф купил себе новую машину Presla Model Z и хочет испытать её на тестовом полигоне.

Новая машина — очередной хит X Æ A-12 Маска, сына того самого Илона. Её характеристики бесподобны. Максимальная скорость безгранична, а потребление электроэнергии минимально. К тому же, новые электродвигатели позволяют получать одинаковый разгон независимо от скорости. Новая модель способна разгоняться с ускорением $$$accel$$$ км$$$/c^2$$$, при этом энергозатраты равны $$$F_a$$$ единиц за одну секунду ускорения. Тормозная система данной модели позволяет мгновенно сбрасывать скорость до любого значения, при этом пассажиры совсем не почувствуют этого из-за системы UGSDS (Ultra Giga Soft Driver Supporting). Это новая адаптивная система поддержки четвертой, пятой и других точек тела человека в кресле. Для экономии заряда батарей используется рекуперативная система Eco Super Power, которая позволяет заряжать батареи, пока машина едет на большой скорости. Данная система позволяет поддерживать любую скорость за $$$F_v$$$ единиц заряда в секунду.

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

На текущем рабочем месте Рудольф получает $$$P_t$$$ рублей за одну рабочую секунду. Клубная карта сети зарядок БерЭлектроНефть позволяет заряжаться по низкой цене в $$$P_f$$$ рублей за одну единицу заряда.

Рудольф знает длину своего любимого маршрута, и он хочет знать, как много денег он может потерять при поездке по этому маршруту.

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

Первая строка содержит два целых числа $$$P_f$$$ и $$$P_t$$$ $$$(1 \leq P_f, P_t \leq 10^9)$$$ — стоимость зарядки одной единицы заряда на сети зарядок БерЭлектроНефть и одной рабочей секунды Рудольфа соответственно.

Вторая строка содержит три целых числа $$$accel, F_a$$$ и $$$F_v$$$ $$$(1 \leq accel, F_a, F_v \leq 10^5)$$$ — ускорение в км$$$/c^2$$$, потребление электроэнергии на ускорение и поддержание скорости соответственно.

Третья строка содержит одно целое число $$$S$$$ $$$(1 \leq S \leq 10^9)$$$ — длина предполагаемого маршрута Рудольфа в км.

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

Выведите искомую минимальную стоимость денежных потерь Рудольфа при преодолении своего любимого маршрута.

Ваш ответ будет засчитан, если относительная или абсолютная погрешность не будет превышать $$$10^{-4}$$$. Формально если $$$a$$$ — ваш ответ, а $$$b$$$ — ответ жюри, то он будет засчитан если $$$\frac{|a-b|}{max(b,1)} \leq 10^{-4}$$$.

Пример
Входные данные
4 100
10 20 2
5000
Выходные данные
5216.895629

D2. Рудольф и новая машина 2
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Рудольф купил себе новую машину Presla Model Z и хочет испытать её на тестовом полигоне.

Новая машина — очередной хит X Æ A-12 Маска, сына того самого Илона. Её характеристики бесподобны. Максимальная скорость безгранична, а потребление электроэнергии минимально. К тому же, новые электродвигатели позволяют получать одинаковый разгон независимо от скорости. Новая модель способна разгоняться с ускорением $$$accel$$$ км$$$/c^2$$$, при этом энергозатраты равны $$$F_a$$$ единиц за 1 секунду ускорения. Тормозная система данной модели позволяет мгновенно сбрасывать скорость до любого значения, при этом пассажиры совсем не почувствуют этого из-за системы UGSDS (Ultra Giga Soft Driver Supporting). Это новая адаптивная система поддержки четвертой, пятой и других точек тела человека в кресле. Для экономии заряда батарей используется рекуперативная система Eco Super Power, которая позволяет заряжать батареи, пока машина едет на большой скорости. Данная система позволяет поддерживать любую скорость за $$$F_v$$$ единиц заряда в секунду.

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

На текущем рабочем месте Рудольф получает $$$P_t$$$ рублей за одну рабочую секунду. Клубная карта сети зарядок БерЭлектроНефть позволяет заряжаться по низкой цене в $$$P_f$$$ рублей за один ватт.

Рудольф знает длину своего любимого маршрута, и он хочет знать, как много денег он может потерять при поездке по этому маршруту.

Он уже протестировал данный маршрут на тестовом полигоне, а теперь хочет воплотить полученные стратегии на реальных дорогах. Вот только на реальных дорогах бывают и другие участники движения. Но, благодаря системе «ГлаВаш» он частично может решить эту проблему. Он выезжает только в том случае, когда на его пути есть всего одна машина — машина его коллеги по работе. Его коллега также нашел для себя оптимальную стратегию движения. Стоит заметить, что обе машины выезжают в одну сторону, но с разных стартовых точек. Начальная скорость каждой машины равна нулю.

Реальные дороги накладывают реальные ограничения на движение. Например, существуют очень строгие правила обгона — обгон возможен только в том случае, если скорость обгоняющей машины не менее, чем на $$$30\%$$$ выше скорости обгоняемой машины. В противном случае обгоняющей машине придется сбросить скорость и ехать за впереди идущей машиной.

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

Первая строка содержит два целых числа $$$P_f$$$ и $$$P_t$$$ $$$(1 \leq P_f, P_t \leq 10^9)$$$ — стоимость зарядки одной единицы заряда на сети зарядок БерЭлектроНефть и одной рабочей секунды Рудольфа соответственно.

Вторая строка содержит три целых числа $$$accel, F_a$$$ и $$$F_v$$$ $$$(1 \leq accel, F_a, F_v \leq 10^5)$$$ — ускорение в км$$$/c^2$$$, потребление электроэнергии на ускорение и поддержание скорости соответственно.

Третья строка содержит одно целое число $$$S$$$ $$$(1 \leq S \leq 10^9)$$$ — длина предполагаемого маршрута Рудольфа в км.

Четвертая строка содержит два целых числа $$$Sp$$$ $$$(1 \leq Sp \leq S-1)$$$ и $$$P_{t2}$$$ $$$(1 \leq P_{t2} \leq 10^9)$$$ — стартовая точка коллеги по работе Рудольфа и стоимость одной рабочей секунды коллеги.

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

Выведите искомую минимальную стоимость денежных потерь Рудольфа при преодолении своего любимого маршрута.

Ваш ответ будет засчитан, если относительная или абсолютная погрешность не будет превышать $$$10^{-4}$$$. Формально если $$$a$$$ — ваш ответ, а $$$b$$$ — ответ жюри, то он будет засчитан если $$$\frac{|a-b|}{max(b,1)} \leq 10^{-4}$$$.

Пример
Входные данные
10 7
3 10 2
100000
1000 1
Выходные данные
18444.063252

E. Рудольф и фокусы
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Рудольф хочет поразить Байера своими магическими способностями. Чтобы это сделать, он покажет ему фокус. Для фокуса он возьмёт колоду из N различных карт, тщательно и равномерно перемешает её и положит перед собой рубашкой вверх. Затем он попытается угадать верхнюю карту. Если это удалось, все ликуют, и фокус завершается. Иначе он запоминает карту, откладывает её и продолжает угадывать верхнюю карту в оставшейся колоде. К сожалению магии не существует, поэтому Рудольф просит вас посчитать математическое ожидание количества попыток, через которое он угадает карту.

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

Первая строка содержит одно целое число N (1 ≤ N ≤ 109) — количество карт в колоде.

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

Выведите одно вещественное число — математическое ожидание количества попыток.

Ваш ответ будет засчитан, если относительная или абсолютная погрешность не будет превышать 10 - 6.

Пример
Входные данные
2
Выходные данные
1.5000000000
Примечание

В примере Рудольф либо угадывает с вероятностью 0.5 с первой попытки, либо не угадывает с вероятностью 0.5 первый раз и с вероятностью 1.0 угадывает оставшуюся карту со второй попытки. Тогда математическое ожидание равно 0.5·1 + 0.5·1·2 = 1.5.

F. Рудольф и Рудольф
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
5 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Путешествия Рудольфа по параллельным мирам привели к ожидаемому результату, он встретил альтернативного Рудольфа. Теперь Рудольф пытается понять, что у него общего с альтернативным Рудольфом.

Рудольф характеризуется последовательностью из $$$N$$$ целых чисел $$$A_i$$$. Альтернативный Рудольф — последовательностью из $$$M$$$ целых чисел $$$B_i$$$. Общими характеристиками Рудольфов являются такие целые числа, которые входят и в характеристики основного Рудольфа, и в характеристики альтернативного Рудольфа, причём в том же порядке. Более того, так как Рудольфы перфекционисты, числа в выбранных характеристиках должны строго возрастать. Ну и очевидно, что из всех подходящих наборов нужно выбрать наидлиннейший.

Пока Рудольфы общаются между собой и смотрят детские фотографии, определите, что общего между двумя Рудольфами.

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

Первая строка содержит целое число $$$N$$$ ($$$1 \le N \le 4000$$$) — количество характеристик основного Рудольфа.

Вторая строка содержит $$$N$$$ целых чисел $$$A_i$$$ ($$$1 \le A_i \le 10^9$$$) — характеристики основного Рудольфа.

Третья строка содержит целое число $$$M$$$ ($$$1 \le M \le 4000$$$) — количество характеристик альтернативного Рудольфа.

Четвёртая строка содержит $$$M$$$ целых чисел $$$B_i$$$ ($$$1 \le B_i \le 10^9$$$) — характеристики альтернативного Рудольфа.

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

В первой строке выведите одно целое число — максимальное количество общих характеристик Рудольфов.

Во второй строке выведите значения общих характеристик Рудольфов.

Если может быть несколько правильных ответов, выведите любой.

Примеры
Входные данные
5
125 200 175 415 50
7
125 125 175 1100 415 25 110
Выходные данные
3
125 175 415 
Входные данные
4
180 25 74 200
5
140 74 80 200 25
Выходные данные
2
74 200 

G. Рудольф и разрезы
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Рудольф долгое время ходил по магазину канцелярских товаров в поисках особенной ручки для его особенных заметок. Уже увидев нужную ему ручку, Рудольф обратил внимание на очень странный аппарат. Это была какая-то платформа с лезвием. Он обратился к консультантам магазина, и ему объяснили, что это просто резак для бумаг, который позволяет сделать один ровный и длинный разрез на листе бумаги.

Рудольф решил купить чудо-устройство и сразу же испытать его, но ... слегка увлекся. Очнувшись от охватившего его бумажного азарта, он задумался.

Рудольфа мучали две мысли:

  1. После выполнения $$$M$$$ разрезов получилась какая-то фигура. Какой же она площади?
  2. Зачем Рудольф так сильно изрезал листок?

Если второй вопрос скорее риторический, то первый вопрос стал для Рудольфа критически важным. Известно, что изначально у Рудольфа был лист бумаги, который помещался в резак. Лист бумаги имел форму произвольного многоугольника без самопересечений. Рудольф запомнил, какие координаты на координатной плоскости резака соответствовали вершинам многоугольника, описывающего лист бумаги, и по каким линиям он делал разрез. Стоит заметить, что после выполнения каждого разреза Рудольф убирал некоторые отрезанные части.

Помогите Рудольфу вычислить суммарную площадь частей листа, которые у него остались после выполнения всех разрезов.

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

Первая строка содержит одно целое число $$$N$$$ $$$(4 \leq N \leq 100)$$$ — количество вершин листа Рудольфа перед первым разрезом.

Следующие $$$N$$$ строк содержат по два целых числа $$$X_i, Y_i$$$ $$$(0 \leq X_i, Y_i \leq 1000)$$$ — координаты $$$i$$$-й вершины листа. Точки перечислены в том порядке, в котором они соединяются, чтобы образовать контур листа.

Следующая строка содержит одно целое число $$$M$$$ $$$(0 \leq M \leq 100)$$$ — количество разрезов, которые сделал Рудольф.

Следующие $$$M$$$ строк содержат четыре целых числа $$$X_l, Y_l, X_r, Y_r$$$ $$$(-1000 \leq X_l, Y_l, X_r, Y_r \leq 2000)$$$ и один символ $$$H$$$ — описание координат точек, между которыми был произведен разрез, и указание, какие из частей листа были убраны.

$$$H$$$ может принимать два значения:

  • «U» — Рудольф убирал части листа, которые были выше линии разреза.
  • «B» — Рудольф убирал части листа, которые были ниже линии разреза.

Гарантируется, что линия разреза, если проходит через лист, то всегда пересекает лист полностью.

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

Выведите одно вещественное число — искомую суммарную площадь оставшихся частей листапосле выполнения всех разрезов.

Ваш ответ будет засчитан, если относительная или абсолютная погрешность не будет превышать $$$10^{-4}$$$. Формально если $$$a$$$ — ваш ответ, а $$$b$$$ — ответ жюри, то он будет засчитан если $$$\frac{|a-b|}{max(b,1)} \leq 10^{-4}$$$.

Примеры
Входные данные
4
0 0
1 0
1 3
0 3
1
-1 1 2 1 B
Выходные данные
2.000000
Входные данные
4
1 1
7 1
7 9
1 9
2
-1 8 9 8 U
-1 5 5 -1 B
Выходные данные
40.000000
Входные данные
16
4 0
11 0
11 2
5 2
5 4
8 4
8 6
2 6
2 8
4 8
4 10
0 10
0 8
1 8
1 4
4 4
2
0 11 11 0 B
-5 1 12 1 U
Выходные данные
0.500000
Входные данные
4
0 0
1 0
1 1
0 1
1
-1 2 3 2 B
Выходные данные
0.000000
Примечание

Изображение ниже описывает второй тест. Серые области обозначают части листа, которые были убраны после разрезов.

H. Рудольф и двоичная загадка Леонардо
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод
...листе мы видим несколько диаграмм, а рядом текст, написанный в традиционном для Леонардо «зеркальном» стиле, справа налево...
— Чарльз Николл, Леонардо да Винчи. Загадки гения

Рудольф — большой фанат Леонардо да Винчи. Леонардо да Винчи оставил огромное наследие, намного опередившее его время. Свои записи гений оставлял в оригинальной технике, которую решил изучить и исследовать Рудольф. Он выяснил, что великий Леонардо представлял числа в «зеркальной» двоичной записи, переводя затем обратно в десятичную систему.

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

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

Единственная строка входных данных содержит единственное целое положительное число $$$X$$$ $$$(1 \le X \le 10^9)$$$.

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

Выведите целое положительное число в десятичной системе счисления, двоичная запись которого выглядит зеркальным отражением двоичного представления заданного числа.

Пример
Входные данные
13
Выходные данные
11

I. Рудольф и провода
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

У Рудольфа очень много разной техники, которой он активно пользуется. Естественно, почти каждое устройство требует либо подзарядки, либо постоянного подключения к электросети. Со временем в проводах, идущих от устройств к розеткам, возникла некоторая путаница. Стало непонятно, какой провод от какого устройства. Рудольф заметил, что в этой сети проводов есть некоторое количество точек спутывания. Для каждой точки характерно то, что в ней переплелись хаотично все имеющиеся провода. Кроме того, Рудольф обратил внимание, что между любыми двумя точками спутывания протягивается не более одного из имеющихся проводов.

Рудольфу очень хочется навести порядок в проводах и распутать их. Чтобы как-то облегчить себе эту задачу, он хочет получить хоть одну возможную конфигурацию расположения проводов.

Помогите Рудольфу это сделать.

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

Единственная строка содержит два целых числа $$$N$$$ и $$$K$$$ ($$$1 \le N, K \le 1000$$$) — количество точек спутывания и количество устройств у Рудольфа.

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

Если возможно составить конфигурацию из $$$K$$$ проводов, удовлетворяющую условиям, выведите $$$K$$$ строк. В $$$i$$$-й строке выведите последовательность точек спутывания, через которую проходит $$$i$$$-й провод. Если решений несколько, то выведите любое.

Если Рудольф что-то напутал, и невозможно составить требуемую конфигурацию, выведите $$$-1$$$.

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

Пример расположения двух проводов и четырех точек спутывания приведен на рисунке. Провода выделены зеленым и синим цветом. Точки спутывания обозначены черными точками, концы проводов — зелеными и синими соответственно.