논리 연쇄
시간 제한1초메모리 제한512 MB
방향 그래프에서 하루에 간선을 최대 10개씩 뒤집은 뒤, 서로 도달할 수 있는 정점 쌍의 개수를 구합니다.
문제
처음 보는 문제를 만나면 대개 익숙한 무언가가 떠오릅니다. 그러면 또 다른 것들이 차례로 떠오릅니다. 이것을 논리 연쇄라고 합니다. 루쉰의 작품에서도 이 현상이 묘사되어 있습니다.
개념은 으로 번호가 붙은 개입니다. 리틀 Q의 머릿속은 이진 행렬 로 나타낼 수 있습니다. 리틀 Q가 개념 를 접했을 때 개념 가 떠오르면 이고, 그렇지 않으면 입니다. 서로 다른 두 개념 와 에 대해, 가 직접 또는 간접적으로 로 이어지고 도 직접 또는 간접적으로 로 이어지면, 쌍 를 순환 쌍이라고 합니다.
리틀 Q의 머릿속은 계속 바뀝니다. 번째 날에는 행렬 에서 개의 위치 가 뒤집힙니다(0은 1이 되고 1은 0이 됩니다). 그날의 변경을 모두 반영한 뒤의 순환 쌍 개수를 구하세요.
개수를 셀 때 와 는 같은 쌍으로 봅니다.
입력
첫 줄에는 개념의 수 과 날의 수 이 주어집니다(, ).
다음 개의 줄에는 각각 정수 개가 주어집니다. 번째 줄은 입니다(, ). 이 값들이 행렬 를 정합니다.
그다음 개의 블록은 각각 하루를 나타냅니다. 각 블록은 그날의 변경 수 를 적은 줄로 시작합니다(). 이어지는 개의 줄에는 바꿀 의 위치 와 가 주어집니다(, ). 같은 위치는 하루에 한 번만 바뀝니다.
출력
각 날에 대해, 그날의 변경을 모두 반영한 뒤의 순환 쌍 개수를 한 줄에 출력합니다.