Початок 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