핵심 하위 프로젝트

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

문제

큰 프로젝트 하나가 서로 다른 하위 프로젝트 NN개로 나뉘어 있다. 관리자는 하위 프로젝트 사이의 선후 관계를 정해 두었다. 하위 프로젝트 uu를 끝내야만 하위 프로젝트 vv를 시작할 수 있는 쌍 (u,v)(u, v)가 있고, 이때 uuvv에 직접 선행한다고 한다. uuvv에 직접 선행하거나, uuzz에 선행하고 zzvv에 선행하는 하위 프로젝트 zz가 있으면 uuvv에 선행한다고 한다.

uu를 제외한 모든 하위 프로젝트 vv에 대해 vvuu에 선행하거나 uuvv에 선행하면, 하위 프로젝트 uu를 핵심 하위 프로젝트라고 한다.

전체 프로젝트는 완료할 수 있다. 즉 자기 자신에게 선행하는 하위 프로젝트는 없다.

핵심 하위 프로젝트를 모두 찾는 프로그램을 작성하시오.

입력

첫째 줄에 정수 NNMM이 주어진다. NN (1N1000001 \le N \le 100000)은 하위 프로젝트의 개수이고, MM (0M10000000 \le M \le 1000000)은 직접 선행 쌍의 개수다. 하위 프로젝트는 11번부터 NN번까지의 번호로 구분한다. 이어지는 MM개 줄에는 각각 두 정수 uuvv (1uvN1 \le u \ne v \le N)가 주어지며, 이는 uuvv에 직접 선행한다는 뜻이다.

출력

첫째 줄에 핵심 하위 프로젝트의 개수를 출력한다. 둘째 줄에는 핵심 하위 프로젝트의 번호를 오름차순으로 출력하고, 번호 사이는 공백 하나로 구분한다. 핵심 하위 프로젝트가 하나도 없으면 첫째 줄에 00만 출력하고 끝낸다.

힌트

첫 번째 예제의 선후 관계를 나타낸 그림이다.