기름 자국
시간 제한2초메모리 제한512 MB
기름 자국으로 이루어진 무방향 다중 그래프가 주어질 때, 모든 간선을 지나되 같은 집으로 곧바로 돌아오지 않는 하나의 경로로 덮을 수 있는지 판정한다.
문제
마이크는 집이 여러 채 있다. 아침마다 그중 한 집에서 깨어나 자기 집 사이를 차로 오가다가, 지치면 그때 있던 집에서 잠든다. 마이크의 차는 기름이 새기 때문에 한 집에서 다른 집으로 한 번 운전할 때마다 두 집 사이에 기름 자국이 하나 남는다.
마이크의 집에는 하인이 살고 있고, 하인도 가끔 자기 차로 집 사이를 오간다. 하인의 차에서도 기름이 새서, 하루가 끝나고 남은 자국만 보면 누가 남긴 것인지 구별할 수 없다.
마이크도 하인도 다른 집을 거치지 않고 출발한 집으로 곧바로 돌아오는 일은 없다. 그래서 한 집을 자기 자신과 잇는 자국은 없다. 같은 두 집 사이를 두 번 운전하면 자국은 두 개가 된다.
어느 하루가 끝난 시점의 집 수와 두 집 사이마다 남은 기름 자국의 개수가 주어진다. 이 정보만으로 판단할 때 모든 자국을 마이크 혼자 남겼을 가능성이 있는지 판정하라.
입력
첫째 줄에 테스트 케이스의 수 ()가 주어진다.
각 테스트 케이스는 두 줄로 주어진다. 첫째 줄에는 집의 수 ()이 주어지고, 집의 번호는 부터 까지다. 둘째 줄은 삼중항의 개수 ()로 시작하고, 이어서 삼중항 개가 나온다. 삼중항 는 집 와 집 사이에 기름 자국이 개 있다는 뜻이다 (, , ). 자국에는 방향이 없어서 삼중항 가 있으면 도 있다고 보지만 입력에는 나오지 않는다. 같은 두 집의 쌍은 삼중항에 최대 한 번만 나오고, 어느 삼중항에도 나오지 않는 쌍 사이에는 자국이 없다.
출력
각 테스트 케이스마다 모든 기름 자국을 마이크 혼자 남겼을 가능성이 있으면 yes, 없으면 no를 한 줄에 출력한다.