Порядок доїння (Золото)#10388

Порядок доїння (Золото)

1 секунда
128 мегабайтів
Складна

Корови фермера Джона, яких, як завжди, пронумеровано від до , мають забагато вільного часу на своїх копитах. Внаслідок цього вони виробили складну соціальну ієрархію, пов'язану з порядком, у якому фермер Джон доїть їх щоранку.

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

Спостереження фермера Джона мають пріоритети, тому його мета — максимізувати значення таке, що порядок доїння задовольняє умови, задані першими спостереженнями. Якщо кілька порядків доїння задовольняють ці перші умов, фермер Джон дотримується давньої традиції, згідно з якою корови з меншими номерами мають вищий ранг, ніж корови з більшими номерами, тому він хотів би доїти корів з меншими номерами першими. Точніше, якщо кілька порядків доїння задовольняють ці умови, фермер Джон хотів би використати лексикографічно найменший з них. Порядок є лексикографічно меншим за порядок , якщо існує таке , що x_i = y_i для всіх i < j та x_j < y_j (іншими словами, два порядки збігаються аж до деякої позиції, на якій має менший елемент, ніж ).

Допоможіть фермеру Джону визначити найкращий порядок, у якому слід доїти його корів.

Вхідні дані

Перший рядок містить два цілих числа та m~(1 \le n \le 10^5, 1 \le m \le 5 \cdot 10^4). Кожен з наступних рядків описує одне спостереження: (i + 1)-й рядок описує спостереження і починається з числа m_i — кількості корів у спостереженні, за яким слідують m_i цілих чисел — номери цих корів у необхідному порядку. Сума всіх m_i не перевищує 2 \cdot 10^5.

Вихідні дані

Виведіть цілих чисел — перестановку чисел від до , що визначає порядок, у якому фермер Джон повинен доїти своїх корів.

Приклади

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

Отже, існує два порядки, що задовольняють перші два спостереження: 1, 4, 2, 3 та 4, 1, 2, 3; перший з них є лексикографічно меншим.

Приклад 1

Loading
Loading