도로 공사 계획

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

문제

바이트타운에서 도로 공사가 시작되면서 여러 도로가 통제됐다. 도시의 일부 지역에는 아예 갈 수 없게 됐다는 말이 돌지만, 공사를 총괄하는 사람이 없어 확인할 방법이 없다.

시장은 상황을 파악하려고 바이트맨을 도로공사 전산관리부장에 임명했다. 이미 시작한 공사는 중간에 멈출 수 없지만, 정해진 기한 안에 써야 하는 공사 예산이 아직 남아 있다. 그래서 시장은 바이트맨에게 지금의 통행 가능성을 그대로 유지하면서 추가로 동시에 폐쇄할 수 있는 도로 목록을 만들라고 지시했다. 즉 지금 어떤 교차로에서 다른 교차로로 갈 수 있다면, 목록에 있는 도로를 모두 폐쇄한 뒤에도 갈 수 있어야 한다.

바이트맨은 처음에 가장 큰 목록을 찾으려 했지만 실패했다. 그래서 목록에 없는 도로를 하나라도 더 넣으면 지금 서로 갈 수 있는 교차로 쌍 중 적어도 하나가 끊기는, 더 이상 늘릴 수 없는 목록을 찾기로 했다. 바이트맨이 이 목록을 만들도록 프로그램을 작성하라.

입력

첫 줄에 교차로의 수 nn과 교차로를 잇는 일방통행 도로의 수 mm이 주어진다 (1n50001 \le n \le 5000, 1m1000001 \le m \le 100000). 교차로에는 11번부터 nn번까지 번호가 붙어 있다.

다음 mm개 줄에는 도로의 정보가 한 줄에 하나씩 주어진다. 그중 ii번째 줄에는 두 정수 aia_i, bib_i가 주어지며 (1ai,bin1 \le a_i, b_i \le n, aibia_i \ne b_i), aia_i번 교차로에서 bib_i번 교차로로 가는 일방통행 도로가 있다는 뜻이다. 같은 순서쌍은 입력에 두 번 이상 나오지 않는다. 도로 공사가 사전 준비 없이 시작됐기 때문에 현재 도로망의 모양에 대해서는 아무것도 가정할 수 없다.

출력

첫 줄에 목록에 담긴 도로의 개수 kk를 출력한다. 이어지는 kk개 줄에는 폐쇄할 도로의 번호를 오름차순으로 한 줄에 하나씩 출력한다. 도로 번호는 입력에 주어진 순서대로 11번부터 mm번까지다.

조건을 만족하는 목록이 여러 개면 사전순으로 가장 앞서는 목록을 출력한다. 두 목록을 각각 오름차순으로 정렬한 뒤 앞에서부터 차례로 비교해, 처음으로 번호가 달라지는 자리에서 더 작은 번호를 가진 목록이 사전순으로 앞선다. kk00이면 첫 줄에 00만 출력한다.