Юний мережевик#3882

Юний мережевик

1 секунда
256 мегабайтів
Дуже легка

Початок 2000-х років...

Ви лише похвалилися, що маєте великий досвід у проєктуванні невеликих домашніх мереж, як Вам запропонували спроєктувати мережу у Вашому під'їзді. І хто тепер здогадається, що це Ваш перший такий проєкт?

Отже, мережа повинна об'єднати користувачів. Кожен користувач підключається до одного з комутаторів (хабів) за допомогою мережевого кабелю. Хаби також можуть бути з'єднані між собою такими ж кабелями, причому один і той самий роз'єм хаба може використовуватися як для підключення кінцевого користувача, так і для з'єднання хабів між собою. Мережа повинна забезпечувати з'єднання будь-якої пари користувачів через один або кілька хабів.

Переглянувши свої запаси старого обладнання, Ви знайшли цілком придатних для використання хабів. -й хаб (1 \le i \le M) має k_i мережевих роз'ємів.

Оскільки Ви пообіцяли, що користувачі мережі будуть платити лише за кабель до найближчого хаба, Ви повинні спроєктувати мережу так, щоб використати мінімальну кількість наявних пристроїв (треба ж щось залишити для майбутніх проєктів!).

Чи зможете вирішити цю задачу?

Вхідні дані

У першому рядку вхідного файлу задані числа і (2 \le N \le 1000, 1 \le M \le 300). Другий рядок містить чисел — значення k_i (2 \le k_i \le 48).

Вихідні дані

Якщо задача не має розв'язку, єдиний рядок вихідного файлу повинен містити текст Epic fail.

В іншому випадку, у першому рядку виведіть число — кількість використаних хабів, а у другому — чисел — їхні номери (нумерація наявних хабів починається з одиниці).

Якщо задача допускає декілька розв'язків, виведіть будь-який з них.

Приклади

Приклад 1

Loading
Loading