Vasya의 그래프
시간 제한2초메모리 제한256 MB
금지된 K개의 노드 쌍과 순서대로 주어지는 M개의 간선이 있을 때, 어떤 금지된 쌍도 연결하지 않는 간선만 받아들이고 남는 간선 번호를 출력한다.
문제
Vasya에게 그래프가 있다. 그래프에는 개의 정점이 있지만 아직 간선은 하나도 없다. Vasya는 앞으로의 그래프 구조를 신경 쓰고 있다. 쌍의 정점 {, }을 알고 있는데, 그래프에서 이 정점들 사이에 경로가 존재하면 그래프에 돌이킬 수 없는 일이 일어난다. Vasya는 무슨 수를 써서라도 그것을 막아야 한다.
Vasya는 개의 무방향 간선 목록을 만들었다. Vasya는 정해진 순서대로 간선을 검사하면서, 가능하면 반드시 그래프에 넣는다. 어떤 간선을 추가해서 돌이킬 수 없는 일이 일어나면, Vasya는 그 간선을 그냥 버린다. 그래프에 넣을 수 있는 간선과 쓰레기통으로 가야 하는 간선을 구하는 것이 과제다.
입력
입력 파일의 첫째 줄에 세 정수 , , 이 주어진다 (, ).
이어서 개의 줄이 주어지고, 번째 줄에는 두 정수 와 가 주어진다. 이는 충돌하는 정점 번호로, 두 정점 사이에 간선이 있으면 안 된다 (). 충돌하는 정점 쌍은 서로 다르다.
다음으로 개의 줄이 주어지고, 번째 줄에는 두 정수 와 가 주어진다. 이는 그래프에 추가할 수 있는 간선의 두 정점 번호다 (). 이 간선들은 검사 순서대로 주어진다. 목록에서 간선은 서로 다르다.
출력
출력 파일의 첫째 줄에는 Vasya가 그래프에 넣을 수 있는 간선의 개수를 출력한다. 둘째 줄에는 그 간선들의 번호를 오름차순으로 공백으로 구분해 출력한다.