다리 공원
시간 제한1초메모리 제한512 MB
볼록 위치의 점들로 이루어진 연결 평면 직선 그래프가 주어질 때, 어떤 다리가 하나 끊겨도 연결이 유지되도록 교차하지 않는 간선을 최소 개수로 추가한다.
문제
공원에는 작은 섬 개와 다리 개가 있다. 섬은 모두 볼록 다각형의 꼭짓점 위에 있다. 볼록 다각형은 내각이 모두 180도보다 작은 단순 다각형이다. 섬은 점이고 다리는 선분이다. 다리 하나는 섬 두 개를 잇고, 서로 다른 두 다리는 함께 쓰는 섬에서만 만난다.
다리로 모든 섬이 이어져 있어서, 어느 섬에서 출발해도 다리를 건너 나머지 섬을 모두 갈 수 있다.

어느 날 다리 하나가 끊어져 관광객이 섬에 갇혔다. 공원 관리위원회는 다리 하나가 끊어져도 모든 섬이 계속 이어져 있도록 다리를 더 놓으려고 한다. 새로 놓는 다리도 선분이고, 다른 다리와는 함께 쓰는 섬에서만 만나야 한다. 이미 다리로 이어진 두 섬은 다시 이을 수 없다. 새 선분이 원래 선분 위에 그대로 겹치기 때문이다.
섬 와 섬 를 잇는 다리를 로 쓴다. 그림의 공원에는 다리 , , , , , , 이 있다. 이 끊어지면 섬은 과 두 덩어리로 나뉜다. 이 끊어지면 과 로 나뉜다. 이 끊어져도 모든 섬은 이어져 있다. 다리 과 를 놓으면 어느 다리 하나가 끊어져도 모든 섬이 이어져 있다.
공원의 섬과 다리가 주어질 때, 다리 하나가 끊어져도 모든 섬이 이어져 있게 하려면 다리를 최소 몇 개 더 놓아야 하는지 구하는 프로그램을 작성하시오.
입력
첫째 줄에 섬의 개수 과 다리의 개수 이 주어진다 (, ). 섬의 번호는 부터 까지이고, 볼록 다각형의 경계를 반시계 방향으로 따라가면 섬이 순서로 나온다.
다음 개 줄에는 각각 정수 와 가 주어지며 (), 다리 를 뜻한다. 주어진 다리로 모든 섬이 이어져 있고, 서로 다른 두 다리는 함께 쓰는 섬에서만 만난다.
출력
다리 하나가 끊어져도 모든 섬이 이어져 있게 하려면 더 놓아야 하는 다리의 최소 개수를 한 줄에 출력한다.