스위치
시간 제한2초메모리 제한512 MB
켜진 램프의 초기 상태와 각 스위치가 토글하는 램프 집합이 주어질 때, 1번부터 N번까지 순환하며 스위치를 눌러 모든 램프가 꺼질 때까지의 누른 횟수를 구하고, 불가능하면 -1을 출력한다.
문제
대형 원형극장의 제어판에는 1번부터 N번까지 번호가 붙은 N개의 스위치가 있고, 이 스위치는 극장의 1번부터 M번까지 번호가 붙은 M개의 전등을 제어한다. 스위치 개수와 전등 개수가 반드시 같지는 않은데, 각 스위치가 전등 하나가 아니라 전등 집합에 연결되어 있기 때문이다. 스위치를 한 번 누르면 그 스위치에 연결된 각 전등의 상태가 뒤집힌다. 즉, 꺼져 있던 전등은 켜지고 켜져 있던 전등은 꺼진다.
일부 전등은 처음에 켜져 있고, 극장 관리인은 모든 전등을 꺼야 한다. 그는 무작위로 스위치를 눌러 보았지만 모든 전등을 동시에 끄지 못했고, 정해진 전략을 따르기로 했다. 그는 1, 2, 3, ..., N, 1, 2, 3, ... 순서로 스위치를 누른다. 즉, N번 스위치를 누를 때마다 1번 스위치부터 다시 시작한다. 그는 이 전략에 따라 모든 전등이 동시에 꺼질 때까지 스위치를 누르며, 그 순간 스위치 누르기를 멈춘다. 이 전략이 통할까?
이 문제에서는 처음에 켜져 있는 전등과 각 스위치에 연결된 전등 집합이 주어질 때, 관리인이 스위치를 누르는 횟수를 계산해야 한다. 관리인의 전략으로 모든 전등이 동시에 꺼지지 않는다면 −1을 출력해야 한다.
입력
첫째 줄에는 스위치 개수와 전등 개수를 나타내는 두 정수 N, M이 주어진다. (1 ≤ N, M ≤ 1000)
둘째 줄에는 정수 L과, 처음에 켜져 있는 서로 다른 전등 L개의 번호 Xi가 주어진다. (1 ≤ L ≤ M, 1 ≤ Xi ≤ M)
다음 N개 줄 중 i번째 줄에는 정수 Ki와, i번 스위치에 연결된 서로 다른 전등 Ki개의 번호 Yi가 주어진다. (1 ≤ i ≤ N, 1 ≤ Ki ≤ M, 1 ≤ Yi ≤ M)
출력
관리인이 위 전략에 따라 모든 전등이 동시에 꺼질 때까지 스위치를 누르는 횟수를 한 줄에 출력한다. 그런 일이 절대 일어나지 않으면 −1을 출력한다.