Задача H. Упрощение плана

Автор:И. Туфанов   Ограничение времени: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
4 5
1 2
1 3
2 4
3 4
2 3
2
2 3

0.037s 0.008s 15