Льодова гра#2737

Льодова гра

1 секунда
64 мегабайти
Дуже складна

Щоб потрапити до команди до Шкіпера, пінгвін повинен пройти ряд випробувань: смуга перешкод від Шкіпера, спаринг з Ріко, розшифрування коду від Прапора і задача від Ковальські.

Ви, пінгвін-новобранець, успішно дісталися останнього випробування. Ковальські пропонує вам зіграти в наступну гру. Вам дається наборів різнокольорових крижинок, кожна крижинка одного з кольорів. Різні кольори позначаються різними малими латинськими літерами. Ви можете взяти деяку підмножину цих наборів за умови, що крижинка кожного кольору зустрічається не більше одного разу у всіх вибраних наборах. Якщо ви вибрали наборів з індексами i_1, i_2, \ldots, i_k, то ваш виграш дорівнює сумі l_{i_1} + l_{i_2} + \cdots + l_{i_k}, де l_{i_j} — кількість крижинок у наборі i_j.

Ковальські вимагає знайти підмножину з максимальною кількістю балів.

Вам потрібно знайти будь-яку підмножину, яка підходить під умови Ковальські.

Вхідні дані

У першому рядку вхідного файлу знаходиться число (1 \leq n \leq 17) — кількість різних кольорів. У другому рядку — число (1 \leq m \leq 200000) — кількість різних наборів крижинок. У наступних рядках подано самі набори. Набір з номером задається рядком з перших малих латинських літер. Довжина кожного рядка не перевищує символів.

Вихідні дані

У першому рядку вихідного файлу виведіть — кількість наборів у відповіді. У другому рядку виведіть чисел — індекси наборів, що входять у відповідь, у довільному порядку.

Приклади

Приклад 1

Loading
Loading