You are given an undirected graph. Write a program that finds every articulation point of the graph.
An articulation point is a vertex whose removal breaks the graph into two or more pieces. In other words, a vertex is an articulation point when deleting it increases the number of connected components. Deleting a vertex also deletes every edge attached to it.
The first line contains the number of vertices V and the number of edges E. (1≤V≤10000, 1≤E≤100000)
Each of the next E lines contains two integers A and B, meaning that vertex A and vertex B are joined by an edge. Every edge is undirected.
The vertices are numbered from 1 to V. The given graph is not necessarily connected.
Print the number of articulation points on the first line.
On the second line, print the numbers of the articulation points in increasing order, separated by one space. If there is no articulation point, leave the second line empty.