바이트랜드 정보국(BAI)은 네트워크로 연결된 컴퓨터 n대를 운영한다. 컴퓨터에는 1번부터 n번까지 번호가 매겨져 있으며, 1번 컴퓨터가 서버이다. 컴퓨터들은 두 컴퓨터를 잇는 단방향 정보 채널로 연결되어 있다. 전체 네트워크는 서버에서 다른 모든 컴퓨터로 (직접 또는 다른 컴퓨터를 거쳐) 정보를 보낼 수 있도록 구성되어 있다.
BAI가 새 소식을 입수하면 그 정보는 먼저 서버에 올라간 뒤 네트워크 전체로 전파된다. 정보국장은 만약 컴퓨터 한 대가 완전히 멈춘다면(예: 공격으로 파괴된다면) 어떤 일이 벌어질지 궁금해한다. 이때 고장 난 컴퓨터가 피할 수 없는 중계 지점이었다면, 새로 입수한 정보가 나머지 컴퓨터 중 일부에 전달되지 못할 수 있다. 이렇게 고장이 났을 때 그러한 상황을 일으킬 수 있는 컴퓨터를 핵심 컴퓨터라고 부른다. 예를 들어 아래 그림의 네트워크에서 핵심 컴퓨터는 1번과 2번이다. 1번은 서버이고, 서버에서 3번 컴퓨터로 가는 모든 정보는 반드시 2번 컴퓨터를 거쳐야 하기 때문이다.

다음을 수행하는 프로그램을 작성하라.
첫째 줄에 두 정수 n과 m이 공백 하나로 구분되어 주어진다. n은 네트워크에 있는 컴퓨터의 수로 2≤n≤5000이고, m은 정보 채널의 수로 n−1≤m≤200000이다. 이어지는 m개의 줄에는 각각 하나의 정보 채널이 공백으로 구분된 두 정수 a와 b (1≤a,b≤n, a=b)로 주어진다. 이는 컴퓨터 a에서 컴퓨터 b로 정보를 보내는 채널을 뜻한다. 시작점과 끝점이 모두 같은 채널이 두 개 이상 존재하는 경우는 없다고 가정해도 된다.
출력은 두 줄로 이루어진다. 첫째 줄에는 핵심 컴퓨터의 수 k를 출력한다. 둘째 줄에는 핵심 컴퓨터의 번호를 오름차순으로 공백 하나씩 구분해 출력한다.