전동차는 구간을 바꾸지 않는다
시간 제한1초메모리 제한1024 MB
트리와 여러 단순 경로가 주어질 때, 모든 경로를 따라 값이 순증가하도록 각 정점에 1부터 N까지의 값을 부여하고, 불가능하면 NO를 출력한다.
문제
외곽 철도에 개의 역과 이들을 잇는 개의 구간이 있다. 두 역 사이에는 구간이 최대 하나만 존재한다. 구간망은 어떤 역에서 출발해 그 역으로 돌아오려면 적어도 하나의 구간을 두 번 지나야만 하도록 구성되어 있다. 이 철도에서는 전동차 운행이 이루어진다. 각 전동차는 두 종점 역 사이의 자기 노선을 양방향으로 운행하며 모든 중간 역에 정차한다.
승객의 편의를 위해 철도 당국은 새로운 요금 체계를 도입하기로 했다. 이 체계에서는 각 역에 정수인 요금 번호를 부여한다. 환승 없이 두 역 사이를 이동할 때의 요금은 두 역의 요금 번호 차의 절댓값으로 정해진다. 각 전동차 노선을 따라 놓인 역들의 요금 번호는 단조롭게 변해야 한다. 즉 어느 방향으로 갈 때는 엄격히 증가하고, 따라서 반대 방향으로 갈 때는 엄격히 감소해야 한다. 이로써 지나는 구간 수가 늘수록 요금이 커진다.
각 역에 요금 번호를 부여하는 프로그램을 작성하시오.
입력
입력 파일의 첫째 줄에 두 정수 과 이 주어진다. 은 역의 수 , 은 역 사이 구간의 수 이다. 이어지는 개 줄에는 두 정수 가 주어지며, 이는 역 와 역 사이에 구간이 있음을 뜻한다. 그다음 별도의 줄에 양의 정수 가 하나 주어지며, 이는 전동차 노선의 수이다. 이어지는 개 줄에는 전동차 노선의 설명이 한 줄에 하나씩 주어진다. 각 설명은 전동차가 갈 수 있는 두 방향 중 하나의 순서로 놓인 노선의 모든 역 번호를 나열한 정수 수열이다. 노선 설명은 0으로 끝난다.
노선 설명에 나오는 모든 역 번호는 서로 다르다. 각 노선의 역 수는 2 이상이다. 각 전동차 노선에서 연속한 두 역은 구간으로 연결되어 있다. 모든 노선 설명에 나오는 역의 총수는 200,000을 넘지 않는다. 어떤 전동차도 지나지 않는 역과 구간이 있을 수 있다.
출력
조건을 만족하는 요금 번호 부여가 존재하지 않으면 출력 파일의 첫째 줄에 "NO"를 출력한다. 그렇지 않으면 첫째 줄에 "YES"를 출력하고, 다음 줄에 개의 양의 정수를 출력한다. 번째 수는 번 역의 요금 번호이다. 각 역의 요금 번호는 1 이상 이하이어야 한다.
해가 여러 개면 그중 아무거나 출력한다.

