쇼핑몰
시간 제한1초메모리 제한256 MB
각 제품을 그 제품을 파는 상점 하나에 배정하고, 어떤 상점이 파는 제품을 다른 곳에서 이미 산 뒤에 그 상점에 들어가지 않도록 상점 방문 순서를 정한다.
문제
Byton은 부모님의 심부름으로 근처 쇼핑몰에 가서 목록에 있는 개의 상품을 사려고 한다. 상품에는 부터 까지 번호가 붙어 있다. Byton은 쇼핑을 좋아하기 때문에 쇼핑몰의 모든 가게를 각각 정확히 한 번씩 방문하려고 한다. Byton은 어떤 순서로 가게를 방문하고, 그중 일부 가게에서 아직 사지 않은 목록의 상품을 살 것이다.
짐작할 수 있듯이 어떤 상품은 여러 가게에서 팔 수도 있다. 안타깝게도 Byton은 약간 편집증이 있어서 무작위 보안 검사를 매우 두려워한다. 그래서 이미 다른 곳에서 산 상품을 파는 가게에 들어가는 곤란한 상황을 피하려고 한다.
Byton이 보안 요원과 곤란한 상황을 겪지 않도록 모든 가게를 방문하고 상품을 사는 전략을 찾을 수 있는가?
입력
입력의 첫째 줄에는 두 정수 이 주어진다. () 은 쇼핑몰의 가게 수이고 은 Byton이 사야 하는 상품 수이다. 다음 개 줄은 쇼핑몰의 가게를 나타낸다. 번째 줄은 번째 가게를 나타낸다. 각 줄은 번째 가게에서 살 수 있는 Byton의 관심 상품 수를 나타내는 로 시작한다. () 그다음에 개의 정수가 오름차순으로 주어진다. 각 정수는 과 사이이고 Byton의 목록에 있는 상품을 나타낸다.
출력
올바른 쇼핑 전략이 존재하지 않으면 NO 한 단어를 출력한다. 그렇지 않으면 첫째 줄에 YES를 출력한다. 둘째 줄에는 Byton이 가게를 방문하는 순서인 부터 까지의 서로 다른 정수 개를 출력한다. 마지막 셋째 줄에는 부터 까지의 정수 개를 출력한다. 번째 정수는 Byton이 상품 를 사야 하는 가게를 나타낸다. 답이 여러 개면 아무거나 출력한다.
힌트
먼저 Byton은 아무것도 사지 않고 가게 에 간다. 그다음 가게 에 가서 상품 와 를 산다. 이어서 가게 에서 상품 을 사고, 마지막으로 가게 에서 상품 을 산다.