섬의 기억
시간 제한3초메모리 제한2048 MB
섬 n개와 m개의 기억된 구역이 주어졌을 때, 각 구역이 간선 하나를 제거하여 나뉘는 트리가 존재하는지 판단합니다.
문제
섬나라에는 번호가 부터 까지 붙은 섬이 개 있다. 섬들은 양방향 다리 개로 연결되어 있어서, 어느 섬에서든 다른 모든 섬으로 갈 수 있다. 각 다리는 배가 지나갈 수 있도록 들어 올릴 수 있다. 다리를 오래 들어 올려 두는 동안에는 나라의 도로 교통이 두 구역으로 나뉘어 운영된다. 각 구역은 들어 올려지지 않은 다리로 서로 연결된 섬들의 최대 집합이다. 두 구역 사이는 도로로 이동할 수 없다. 나라는 도로 교통의 불편을 줄이기 위해 어느 순간에도 다리를 두 개 이상 동시에 들어 올리지 않는다.
이 섬나라를 찾는 여행객을 위한 관광 안내서를 쓰고 있다. 아직 섬들이 다리로 어떻게 연결되어 있는지 나타낸 지도가 없다. 그래서 이 나라에 사는 주민 명을 인터뷰했다. 각 주민은 과거에 다리가 들어 올려져 있었을 때 자기 구역에 어떤 섬들이 있었는지 기억을 말해 주었다. 다만 기억을 잘못하고 있는 주민도 있을 수 있다. 모든 주민의 기억이 서로 맞는지 확인하려 한다. 섬을 다리로 잇는 방법이 존재하고, 한 번에 다리를 하나씩만 들어 올렸을 때 명이 말한 구역이 모두 실제로 만들어질 수 있으면 기억이 맞는 것이다.
입력
첫 줄에 두 정수 , ()이 주어진다. 은 섬의 개수, 은 인터뷰한 주민의 수이다.
이어서 명의 기억이 주어진다. 각 기억은 한 줄에 그 주민의 구역에 있는 섬의 개수 ()가 주어진다. 다음 줄에는 그 구역에 있는 개의 섬 번호가 오름차순으로 주어진다. 주민들이 구역의 섬을 빠뜨리지 않고 말했다고 가정해도 된다. 따라서 각 섬 집합은 들어 올려지지 않은 다리로 연결했을 때 최대 집합이다.
출력
모든 주민의 기억이 서로 맞으면 을, 그렇지 않으면 을 출력한다.