초록 게임은 앤과 빌리 두 사람이 하는 게임이다. 두 사람은 a+b개의 칸으로 이루어진 판 위에서 말 하나를 옮긴다. 칸에는 1부터 a+b까지 번호가 매겨져 있으며, 1번부터 a번까지는 앤의 칸, a+1번부터 a+b번까지는 빌리의 칸이다. 각 칸은 흰색이거나 초록색이다.
모든 칸에는 비어 있지 않은 다음 칸 집합(그 칸에서 한 번의 이동으로 갈 수 있는 칸들)이 정해져 있다. 다음 칸들은 앤의 칸에서 이동하면 반드시 빌리의 칸으로, 빌리의 칸에서 이동하면 반드시 앤의 칸으로 가도록 배치되어 있다.
말은 처음에 정해진 시작 칸 P에 놓인다. 이후 두 사람은 번갈아 말을 옮기는데, 어떤 칸에서든 그 칸의 주인이 다음 칸 하나를 골라 이동한다. 첫 이동은 시작 칸 P의 주인이 한다.
게임은 말이 같은 칸에 두 번째로 도착하는 순간 끝나며, 그 칸을 Q라 하자. Q에 처음 도착한 때부터 두 번째로 도착한 때까지 지나온 칸들을 살펴본다. 그 구간에서 말이 초록색 칸을 한 번이라도 밟았다면 앤이 이기고, 그렇지 않으면 빌리가 이긴다.
빌리가 어떻게 움직이든 앤이 항상 이길 수 있는 방법이 있다면, 앤은 그 시작 칸 P에 대해 필승 전략을 가진다고 한다.
판이 주어질 때, 앤이 필승 전략을 가지는 모든 시작 칸을 구하여라.
첫째 줄에 두 양의 정수 a와 b가 공백으로 구분되어 주어진다. 각각 앤의 칸 수와 빌리의 칸 수를 뜻하며, 1≤a+b≤3000이다.
다음 a+b개의 줄에는 각 칸의 정보가 주어진다. 먼저 앤의 칸들이 1…a 순서로, 그다음 빌리의 칸들이 a+1…a+b 순서로 나온다. (i+1)번째 줄은 i번 칸을 설명하며, 두 정수 z와 k로 시작한다. z는 칸의 색(0은 흰색, 1은 초록색), k는 다음 칸의 개수(1≤k<a+b)이다. 그 뒤에 k개의 다음 칸 번호가 이어진다. 한 줄의 모든 정수는 공백 하나로 구분된다.
초록색 칸은 최대 100개이며, 모든 칸의 다음 칸 개수를 합한 값은 최대 30000이다.
첫째 줄에 앤이 필승 전략을 가지는 칸의 개수 l을 출력한다. 이어지는 l개의 줄에 그 칸들의 번호를 오름차순으로 한 줄에 하나씩 출력한다.