G. Подготовка к сражению
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

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

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

Сейчас у Евлампия есть $$$n$$$ одинаковых воинов. Перед любой битвой он должен разделить их на ровно $$$m$$$ групп (возможно, пустых) так, что суммарный размер групп равен $$$n$$$. Сражение происходит пошагово. На каждом шаге каждая из групп Евлампия нападает на ровно одну группу противника. Таком образом, каждый шаг задается массивом из $$$m$$$ чисел $$$a_1, a_2, \ldots, a_m$$$, обозначающих, что $$$i$$$-й отряд Евлампия нападает на $$$a_i$$$-й отряд противника. Разные отряды могут нападать на одну и ту же группу противника, на каждом шаге массив $$$a$$$ выбирается заново.

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

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

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

Иными словами, вам необходимо найти минимальное количество ходов, за которые можно уничтожить все войска противника, а после этого показать, как это сделать. Для этого опишите разбиение вашего войска на $$$m$$$ групп, и выведите последовательности $$$a$$$, описывающие каждый из ходов игры.

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

Первая строка содержит два целых числа $$$n$$$ и $$$m$$$ ($$$1 \leq m \leq n \leq 10^{6}$$$), разделенные пробелом — количество воинов в армии Евлампия и число групп в армии противника. $$$m$$$ также равно числу групп, на которые Евлампий может разбить свою армию.

Вторая строка содержит $$$m$$$ целых чисел $$$hp_1, hp_2, \ldots, hp_m$$$ ($$$1 \leq hp_i \leq 10^{6}$$$) — здоровье групп противника.

Гарантируется, что сумма $$$hp_i$$$ не превышает $$$10^{6}$$$.

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

В первой строке выведите одно целое число $$$t$$$ — минимальное чисто ходов, необходимое Евлампию для победы в битве.

После этого выведите $$$m$$$ целых чисел $$$s_1, s_2, \ldots, s_m$$$ ($$$s_i \ge 0$$$, $$$s_1 + s_2 + \ldots + s_m = n$$$), обозначающих, что в $$$i$$$-й группе войска Евлампия будет $$$s_i$$$ воинов.

В каждой из следующих $$$t$$$ строках выведите $$$m$$$ целых чисел $$$a_1, a_2, \ldots, a_m$$$ ($$$1 \le a_i \le m$$$) — описание очередного хода Евлампия. Эти числа означают, что на очередном ходу $$$i$$$-я группа войска Евлампия должна атаковать $$$a_i$$$-ю группу войска противника. Разрешается нападать на уже уничтоженный отряд противника.

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

Первый пример показан на рисунке.