Олимпиадный тренинг

Задача . F. Рёбра на простых циклах


Задан неориентированный граф, состоящий из \(n\) вершин и \(m\) рёбер. Граф не обязательно связный. Гарантируется, что в графе нет кратных рёбер и петель.

Цикл в графе называется простым, если он содержит каждую свою вершину ровно один раз (под своими вершинами цикла понимаются все вершины, которые входят в этот цикл).

Определите рёбра, которые лежат ровно на одном простом цикле.

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

В первой строке следуют два целых числа \(n\) и \(m\) \((1 \le n \le 100\,000\), \(0 \le m \le \min(n \cdot (n - 1) / 2, 100\,000))\) — количество вершин и количество рёбер.

В следующих \(m\) строках следует по два целых числа \(u\) и \(v\) (\(1 \le u, v \le n\), \(u \neq v\)) — описание рёбер графа.

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

В первую строку выведите количество рёбер, которые лежат ровно на одном простом цикле.

Во вторую строку выведите номера рёбер, лежащих ровно на одном простом цикле, в порядке возрастания. Рёбра нумеруются начиная с единицы в том же порядке, в котором заданы во входных данных.


Примеры
Входные данныеВыходные данные
1 3 3
1 2
2 3
3 1
3
1 2 3
2 6 7
2 3
3 4
4 2
1 2
1 5
5 6
6 1
6
1 2 3 5 6 7
3 5 6
1 2
2 3
2 4
4 3
2 5
5 3
0

time 2000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя