카페바자르의 폭발
시간 제한2초메모리 제한512 MB
유향 다중 그래프에서 한 비트 패킷이 보내기와 받기 단계를 번갈아 거칠 때, 어떤 버퍼의 크기가 무한히 커지게 하는 시작 스위치의 수를 구한다.
문제
당신은 카페바자르의 엔지니어이고, 네트워크와 그 동작을 분석하는 일을 맡고 있다. 동료들이 스위치 개와 스위치 쌍을 잇는 방향 링크 개로 이루어진 네트워크를 설계했다. 각 스위치에는 데이터를 저장하는 버퍼가 하나 있고, 전송 모드와 수신 모드 두 가지 모드가 있다. 전송 모드인 스위치는 버퍼에 저장된 데이터를 나가는 링크 전부로 동시에 내보내고, 마지막에 버퍼를 비운다. 수신 모드인 스위치는 들어오는 링크에 실린 데이터를 모두 이어 붙여 버퍼에 저장한다. 따라서 이때 버퍼에 저장된 데이터의 길이는 들어오는 링크에 실린 데이터 길이의 합과 같다.
시각 에 모든 스위치는 전송 모드이고 버퍼가 비어 있다. 단, 스위치 의 버퍼에는 1비트짜리 데이터가 들어 있다. 모든 스위치는 1초마다 모드를 바꾼다. 즉 에는 전부 수신 모드가 되고, 에는 전부 전송 모드가 되며, 이런 식으로 이어진다. 가 무한히 커질 때 스위치의 버퍼에 저장되는 데이터 길이의 최댓값이 유계가 아니면 스위치 를 폭발하는 스위치라고 한다.
네트워크에서 폭발하는 스위치가 몇 개인지 구하는 프로그램을 작성하시오.
입력
입력은 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스의 첫째 줄에는 스위치의 개수 과 방향 링크의 개수 이 공백으로 구분되어 주어진다 (). 다음 개 줄에는 각각 두 정수 , 가 공백으로 구분되어 주어지며, 스위치 에서 스위치 로 가는 방향 링크를 뜻한다 (, ). 같은 쌍이 여러 번 주어지기도 하며, 그때는 링크가 그 개수만큼 따로 있는 것으로 센다.
입력의 마지막 줄에는 0 0이 주어지며, 이 줄은 처리하지 않는다.
출력
각 테스트 케이스마다 폭발하는 스위치의 개수를 한 줄에 출력한다.