Юный сетевик
Начало 2000-х годов...
Стоило только Вам похвастаться, что Вы собаку съели в проектировании небольших домашних сетей, как Вам предложили спроектировать сеть в Вашем подъезде. И кто сейчас поймёт, что это — Ваш первый опыт?
Итак, сеть будет объединять N пользователей. Каждый пользователь подсоединяется сетевым кабелем к одному из коммуникаторов (хабов). Хабы также могут быть соединены друг с другом такими же кабелями, при этом один и тот же разъём хаба может быть использован как для связи с конечным пользователем, так и для соединения хабов между собой. Сеть должна обеспечивать соединение любой пары пользователей между собой через один или несколько хабов.
Поковырявшись в своих развалах старья, Вы нашли M вполне пригодных к использованию хабов. i-й хаб (1 ≤ i ≤ M) содержит k_i сетевых разъёмов.
Поскольку Вы пообещали, что пользователи сети будут нести траты только на покупку кабеля до ближайшего хаба, Вы должны спроектировать сеть так, чтобы задействовать минимальное количество устройств, которые у Вас имеются (надо же что-то оставить на будущие проекты!).
Сможете решить эту задачу?
Входные данные
В первой строке входного файла заданы числа N и M (2 ≤ N ≤ 1000, 1 ≤ M ≤ 300). Вторая строка содержит M чисел — величины k_i (2 ≤ k_i ≤ 48).
Выходные данные
Если задача не имеет решения, единственная строка выходного файла должна содержать текст Epic fail.
В противном случае в первой строке выведите число K — количество использованных хабов, а во второй - K чисел — их номера (нумерация имеющихся хабов начинается с единицы).
Если задача допускает несколько решений, выведите любое из них.