당신은 큰 저택의 집사다. 방이 너무 많아서 방마다 이름 대신 번호만 붙어 있다(0번 방, 1번 방, 2번 방, 3번 방 등등). 주인은 유난히 덤벙거리는 사람이라 저택의 한 층을 돌아다니며 문을 열어 놓고 다닌다. 당신은 오랜 세월 동안 어질러진 방을 한 번의 경로로 지나가면서 지나온 문을 바로 닫는 요령을 익혔다.
가장 어려운 부분은 다음 세 조건을 모두 지키는 경로가 있는지 판단하는 것이다.
이 문제에서는 방 목록과 방 사이에 열려 있는 문, 그리고 출발하는 방이 주어진다. 실제 경로를 찾을 필요는 없고 그런 경로가 있는지만 판단하면 된다.
입력은 데이터 집합 1개 이상 100개 이하로 이루어진다. 각 데이터 집합은 아래 형식을 따르고, 집합 사이에 빈 줄은 없다.
데이터 집합 하나는 세 부분으로 나뉜다.
마지막 데이터 집합 다음에는 "ENDOFINPUT" 한 줄이 온다.
한 데이터 집합에 들어 있는 문은 100개를 넘지 않는다.
데이터 집합마다 정확히 한 줄을 출력한다. 위 규칙을 지키면서 집사가 자기 방으로 걸어 들어가 마지막 남은 열린 문까지 닫을 수 있으면 "YES X"를 출력한다. X는 집사가 닫은 문의 개수다. 그렇지 않으면 "NO"를 출력한다.
열린 문이 하나도 없고 집사가 이미 0번 방에 있으면 문을 0개 닫은 채로 조건을 모두 만족하므로 "YES 0"을 출력한다.