바이트랜드 정보국의 핵심 컴퓨터

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

바이트랜드 정보국(BAI)은 네트워크로 연결된 컴퓨터 nn대를 운영한다. 컴퓨터에는 11번부터 nn번까지 번호가 매겨져 있으며, 11번 컴퓨터가 서버이다. 컴퓨터들은 두 컴퓨터를 잇는 단방향 정보 채널로 연결되어 있다. 전체 네트워크는 서버에서 다른 모든 컴퓨터로 (직접 또는 다른 컴퓨터를 거쳐) 정보를 보낼 수 있도록 구성되어 있다.

BAI가 새 소식을 입수하면 그 정보는 먼저 서버에 올라간 뒤 네트워크 전체로 전파된다. 정보국장은 만약 컴퓨터 한 대가 완전히 멈춘다면(예: 공격으로 파괴된다면) 어떤 일이 벌어질지 궁금해한다. 이때 고장 난 컴퓨터가 피할 수 없는 중계 지점이었다면, 새로 입수한 정보가 나머지 컴퓨터 중 일부에 전달되지 못할 수 있다. 이렇게 고장이 났을 때 그러한 상황을 일으킬 수 있는 컴퓨터를 핵심 컴퓨터라고 부른다. 예를 들어 아래 그림의 네트워크에서 핵심 컴퓨터는 11번과 22번이다. 11번은 서버이고, 서버에서 33번 컴퓨터로 가는 모든 정보는 반드시 22번 컴퓨터를 거쳐야 하기 때문이다.

다음을 수행하는 프로그램을 작성하라.

  • 표준 입력에서 네트워크의 정보를 읽는다.
  • 모든 핵심 컴퓨터를 찾는다.
  • 핵심 컴퓨터의 번호를 표준 출력에 출력한다.

입력

첫째 줄에 두 정수 nnmm이 공백 하나로 구분되어 주어진다. nn은 네트워크에 있는 컴퓨터의 수로 2n50002 \le n \le 5000이고, mm은 정보 채널의 수로 n1m200000n - 1 \le m \le 200000이다. 이어지는 mm개의 줄에는 각각 하나의 정보 채널이 공백으로 구분된 두 정수 aabb (1a,bn1 \le a, b \le n, aba \ne b)로 주어진다. 이는 컴퓨터 aa에서 컴퓨터 bb로 정보를 보내는 채널을 뜻한다. 시작점과 끝점이 모두 같은 채널이 두 개 이상 존재하는 경우는 없다고 가정해도 된다.

출력

출력은 두 줄로 이루어진다. 첫째 줄에는 핵심 컴퓨터의 수 kk를 출력한다. 둘째 줄에는 핵심 컴퓨터의 번호를 오름차순으로 공백 하나씩 구분해 출력한다.