`Всеукраїнський центр проведення олімпіад в мережі Інтернет

Задача Case

Як відомо, люди часто мають відразу декілька захоплень. Наприклад, одна і та ж людина може виступати на олімпіаді з програмування, грати в аматорському театрі і ходити в туристичні походи. Нехай кількість можливих захоплень дорівнює m і всі ці захоплення пронумеровані числами від 1 до  m. Гарантовано, що для кожного з m захоплень існує своя «група за інтересами», кожна людина належить хоча б до однієї з  груп і до кожної з m груп належить хоча б одна людина.
Одного дня Начальник-Забороняльник  вирішив, що m груп — забагато, призначив якийсь час "Ч" і велів зібратися представникам кожної групи в окремому обумовленому місці. Якщо на якомусь з обумовлених місць нікого не буде, Начальник-Забороняльник дасть собі волю і  заборонить відповідну групу. У такій ситуації не можна, щоб кожен діяв сам по собі, не радячись з іншими. Тому люди вирішили домовитися між собою. Зрозуміло, що ніхто не піде підтримувати групу, до якої не належить. Але кожен згоден вибирати одну зі своїх груп так, щоб жодна з груп не була заборонена. Напишіть програму, яка знайде спосіб розподілити людей по вказаних місцях Начальником-Забороняльником (або повідомить, що це неможливо). Достатньо досягти (якщо можливо), щоб на кожне місце прийшла хоч би одна людина. Якщо є декілька різних способів, які дозволяють врятувати всі групи від заборони, програма повинна вивести будь-який з їх.
Технічні умови. Программа читає з клавіатури кількість груп m (2 ≤ m ≤ 150), кількість людей n (m ≤ n ≤ 200), далі n блоків такої структури: перше число блоку Кі - кількість  груп, до якої належить і-й людина (1 ≤ Кі ≤ m) потім задано Кі  номерів тих груп, до яких він належить (в порядку зростання). Всі вхідні дані записані в одному рядку через пропуски.  Начальник-Забороняльник не належить до жодної з m груп і не є жодним із згаданих людей.
Програма повинна вивести на екран спочатку  відповідь 1, якщо зберегти  всі групи можна, або 0 якщо ні. В разі відповіді 1 далі потрібно вивести в тому ж рядку  n чисел (значенням від 1 до m кожне), які позначають, на збори якої групи піде відповідний (1-а, 2-а ..., n-а) людина. Якщо є декілька різних розподілів, які дають можливість врятувати всі групи від заборони, виводьте будь-який.

Приклади

Введення
3 3 1 1 1 1 2 2 3

Виведення
0

Введення
3 4 1 1 2 2 3 1 3 2 1 3

Виведення
1 1 2 3 1

© LIKT 1998-2024