Юний мережевик
Початок 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 чисел — їхні номери (нумерація наявних хабів починається з одиниці).
Якщо задача допускає декілька розв'язків, виведіть будь-який з них.