Автор: | И. Туфанов | Ограничение времени: | 1 сек | |
Входной файл: | input.txt | Ограничение памяти: | 256 Мб | |
Выходной файл: | output.txt |
Стройка, приуроченная к саммиту АТЭС — очень большая задача. Как и все большие задачи, её разбили на подзадачи. Между подзадачами есть зависимости: есть такие пары подзадач (u, v), что к подзадаче v нельзя приступать, не завершив предварительно подзадачу u.
При этом некоторые зависимости могут присутствовать и неявно. Например, если имеются зависимости (u, v) и (v, w), то подзадачу w нельзя выполнять, пока не будет выполнена подзадача u.
Был составлен план стройки с подзадачами и зависимостями между ними. Однако выяснилось, что зависимостей в плане обозначено слишком много — некоторые из них можно удалить и всё равно они будут присутствовать неявно. Вам поручили написать программу, удаляющую как можно больше лишних зависимостей.
Множество зависимостей можно удалить, если после его удаления все неявные зависимости сохранятся.
Так, в примере 1 могут быть удалены зависимости (1, 3) и (2, 4). В том же примере зависимость (2, 3) удалена быть не может, поскольку остальные четыре не создают её неявно.
Во первой строке входного файла находятся числа N M — количество подзадач и количество зависимостей. Далее следует M пар чисел, обозначающих зависимости. Пара u v означает, что подзадача v не может быть выполнена, пока не будет выполнена u.
Подзадачи пронумерованы первыми N натуральными числами.
Гарантируется, что ни одна зависимость не упомянута дважды.
Гарантируется, что никакая задача не зависит от самой себя и зависимости не образуют циклов.
Выходной файл должен содержать целое число — максимальное количество зависимостей, которые можно удалить. Затем должна следовать последовательность номеров удаляемых зависимостей, перечисленных в порядке возрастания.
1 ≤ N ≤ 50
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|