eolymp
bolt
Попробуйте наш новый интерфейс для отправки задач
Задачи

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

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

n коров фермера Джона, пронумерованных 1..n, разработали социальную иерархию, в соответствии с которой ФД доит их каждое утро.

ФД сделал m наблюдений об этой структуре. Каждое наблюдение - упорядоченный список некоторых из его коров, указывающий что их нужно доить именно в таком порядке. Например список 2 5 1 означает, он должен подоить корову 2, некоторое время спустя - корову 5 и некоторое время после - корову 1.

Наблюдения ФД приоритезированы, поэтому его цель - максимизировать значение X так, чтобы выполнились условия первых X наблюдений. Если несколько порядков дойки могут удовлетворять X наблюдениям, он выбирает тот, в котором корова с меньшим номером доится раньше. Иными словами, если несколько порядков дойки удовлетворяют этим условиям, ФД выбирает лексикографически наименьший. Порядок x является лексикографически меньшим, чем порядок y, если для некоторого j, xi = yi для всех i < j и xj < yj (другими словами два порядка идентичны до некоторой точки, в которой x меньше чем y).

Помогите ФД определить наилучший порядок дойки его коров.

Входные данные

Первая строка содержит числа n (1 ≤ n ≤ 105) и m (1m50000). Каждая из следующих m строк описывает одно наблюдение. Строка i + 1 описывает наблюдение i и начинается с количества коров mi в этом наблюдении, за которым следует список из mi целых чисел, определяющих порядок коров в этом наблюдении. Сумма mi не превышает 200000.

Выходные данные

Выведите n целых чисел дающих перестановку чисел of 1..n, содержащую порядок в котором ФД должен доить своих коров.

Пример

Здесь у ФД 4 коровы и он должен доить корову 1 перед коровой 2 и корову 2 перед коровой 3 (первое наблюдение), также он должен доить корову 4 перед коровой 2 (второе наблюдение), и корову 3 перед коровой 4 и корову 4 перед коровой 1 (третье наблюдение). Первые два наблюдения можно удовлетворить одновременно, но с третьим не получается поскольку нужно доить корову 1 перед коровой 3 и корову 3 перед коровой 1.

Это означает, что есть два возможных порядка: 1 4 2 3 и 4 1 2 3, из которых первый - лексикографически наименьший.

Лимит времени 1 секунда
Лимит использования памяти 128 MiB
Входные данные #1
4 3
3 1 2 3
2 4 2
3 3 4 1
Выходные данные #1
1 4 2 3
Источник 2018 USACO US Open, Золото