Шляхи#2988

Шляхи

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

Прямокутне поле складається з рядків і стовпців. За один хід ігрова фішка може переміститись з клітинки одного стовпця до клітинки наступного стовпця. Для кожної клітинки поля задано номери рядків наступного стовпця, до яких можна перейти з цієї клітинки. Фішка не може відвідувати одну й ту ж клітинку більше одного разу.

На початку гри фішку розміщують у будь-яку клітинку першого стовпця. Потім вона починає рухатися до останнього стовпця. Коли фішка досягає останнього стовпця, її знову розміщують у будь-якій ще не відвіданій клітинці першого стовпця, і вона продовжує рух. Гра закінчується, коли фішка не може зробити хід.

Напишіть програму WAYS, яка за заданими , (1 \leq N \leq 50, 2 \leq M \leq 10) і таблицею можливих переходів між клітинками визначає максимальну кількість разів, яку фішка може бути проведена від першого до останнього стовпця поля.

Вхідні дані

У першому рядку задано та . Далі слідують M-1 блок, кожен з яких містить рядків. Кожен блок описує можливі переходи для кожної клітинки поля. Кожний -й рядок -го блоку описує можливі переходи з клітинки в -му рядку -го стовпця. Перше число в рядку — кількість можливих переходів з цієї клітинки, далі вказані номери рядків наступного стовпця у зростаючому порядку, без повторень.

Вихідні дані

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

У наведеному прикладі фішку можна провести рази, наприклад, за такими маршрутами: (1\to 3\to 3), (2\to 4\to 4) та (4\to 2\to 2).

Приклади

Приклад 1

Loading
Loading