Точки сочленения

Дан неориентированный граф. Требуется найти все точки сочленения в нём.

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

Первая строка входного файла содержит два натуральных числа \(n\) и \(m\) — количества вершин и рёбер графа соответственно (\(1 \le n \le 20\,000\), \(1 \le m \le 200\,000\)).

Следующие \(m\) строк содержат описание рёбер по одному на строке. Ребро номер \(i\) описывается двумя натуральными числами \(b_i\), \(e_i\) — номерами концов ребра (\(1 \le b_i, e_i \le n\)).

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

Первая строка выходного файла должна содержать одно натуральное число \(b\) — количество точек сочленения в заданном графе. На следующей строке выведите \(b\) целых чисел — номера вершин, которые являются точками сочленения, в возрастающем порядке.

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

Задача на informatics