시간 제한
메모리 제한
시간 제한
2초
메모리 제한
128 MB
세준이는 형택 대학교의 학생 상담자이다. 형택 대학교의 졸업 조건은 학생마다 다르며, 여러 개의 조건을 모두 만족해야 졸업할 수 있다. 각 조건은 예를 들어 “1, 2, 3, 4번 수업 중 2개를 들어야 한다”와 같은 형태이다.
졸업 조건이 바뀌어, 어떤 조건을 만족시키는 데 사용한 수업은 다른 조건을 만족시키는 데 다시 사용할 수 없게 되었다. 즉, 한 수업은 최대 하나의 졸업 조건에만 배정될 수 있다.
정문이가 이미 들은 수업과 졸업 조건들이 주어진다. 정문이가 졸업할 수 있도록 추가로 들어야 하는 수업의 최소 개수와, 그때 들어야 하는 수업 번호를 구하시오.
수업은 1 이상 100 이하의 정수 하나로 표시된다.
첫째 줄에 정문이가 이미 들은 수업의 개수 M이 주어진다. M은 0 이상 100 이하이다.
둘째 줄에는 정문이가 이미 들은 수업 번호가 공백으로 구분되어 주어진다. M이 0이면 이 줄은 빈 줄이다.
셋째 줄에 졸업 조건의 개수 N이 주어진다. N은 1 이상 100 이하이다.
다음 N개의 줄에는 졸업 조건이 한 줄에 하나씩 주어진다. 각 줄의 첫 번째 수는 그 조건을 만족하기 위해 필요한 수업 수이고, 두 번째 수는 그 조건에 포함된 수업 수이다. 이어서 그 조건에 포함된 수업 번호들이 주어진다.
예를 들어 “1, 2, 3, 4번 수업 중 2개를 들어야 한다”는 2 4 1 2 3 4로 주어진다. 각 줄의 첫 번째 수와 두 번째 수는 100 이하의 자연수이다. 중복되는 졸업 조건은 없다.
첫째 줄에 정문이가 추가로 들어야 하는 수업의 최소 개수를 출력한다.
둘째 줄에는 추가로 들어야 하는 수업 번호를 공백으로 구분하여 출력한다. 최소 개수를 만족하는 답이 여러 개라면, 이 수열이 사전순으로 가장 앞서는 답을 출력한다. 수업을 여러 번 들을 수는 없다.
어떤 방법으로도 졸업할 수 없다면 첫째 줄에 -1을 출력한다.
이미 들은 1번 수업은 한 조건에만 사용할 수 있다. 한 조건에는 2번 수업을 함께 배정하고, 다른 조건에는 3번과 4번 수업을 배정하면 조건을 모두 만족할 수 있다.