전구
시간 제한3초메모리 제한1024 MB
스위치로 연결된 전구 쌍이 같은 상태일 때만 두 전구를 함께 뒤집을 수 있습니다. 처음 상태에서 도달 가능한 전구 상태의 개수를 10^9+7로 나눈 나머지로 구합니다.
문제
Bajtazar에게는 1번부터 번까지 번호가 붙은 전구 개와 스위치 개가 있다. 각 전구는 처음에 켜져 있거나 꺼져 있다. 각 스위치는 전구 한 쌍에 영향을 준다. 스위치를 누르면 두 전구의 상태가 반대로 바뀌는데, 두 전구가 같은 상태(둘 다 켜짐 또는 둘 다 꺼짐)일 때만 그렇다. 두 전구의 상태가 다르면 스위치를 눌러도 아무 일도 일어나지 않는다.
Bajtazar는 켜짐과 꺼짐으로 이루어진 전구 구성 중 도달할 수 있는 서로 다른 구성이 몇 개인지 알고 싶다. 스위치는 순서에 상관없이 원하는 만큼 누를 수 있고, 같은 스위치를 여러 번 써도 된다. 어떤 전구가 한 구성에서는 켜져 있고 다른 구성에서는 꺼져 있으면 두 구성은 다른 것이다. 답이 클 수 있으므로 로 나눈 나머지를 출력한다.
입력
첫 번째 줄에 두 정수 과 이 주어진다(, ). 두 번째 줄에는 공백으로 구분된 정수 개 ()가 주어진다. 이면 번 전구는 처음에 켜져 있고, 이면 꺼져 있다.
이어지는 개의 줄은 스위치를 하나씩 설명한다. 번째 줄에는 두 정수 와 (, )가 주어지며, 이는 번째 스위치가 영향을 주는 전구의 번호이다. 서로 다른 두 스위치가 같은 전구 쌍에 영향을 주지 않는다. 즉 모든 에 대해 이고 이다.
출력
도달 가능한 전구 구성의 개수를 로 나눈 나머지를 한 줄에 출력한다.
힌트
예시에서 도달 가능한 최종 전구 상태는 10110, 00010, 00111, 10011이다.