대각선 뒤집기
면접 대비시간 제한1초메모리 제한2048 MB
0과 1로 이루어진 격자가 주어질 때, 모든 칸을 0으로 만드는 대각선 뒤집기 연산의 최소 횟수를 구합니다. 불가능하면 -1을 출력합니다.
문제
크기의 격자가 주어진다. 격자의 원소는 또는 이다. 대각선 연산은 두 종류가 있다.
격자의 위치 에 대한 종류 연산은 임의의 정수 에 대해 위치 에 있는 원소를 모두 뒤집는다. 은 이 되고, 은 이 된다.
격자의 위치 에 대한 종류 연산은 임의의 정수 에 대해 위치 에 있는 원소를 모두 뒤집는다. 위치 는 이고 일 때만 유효하다.

그림 1. 위치 에 대한 종류 대각선 연산

그림 2. 위치 에 대한 종류 대각선 연산
그림 1은 위치 에 대한 종류 연산을 보여준다. 위치 또는 에 대한 종류 연산도 같은 효과를 낸다. 그림 2는 위치 에 대한 종류 연산을 보여준다. 위치 또는 에 대한 종류 연산도 같은 효과를 낸다.
격자가 주어졌을 때, 격자의 모든 원소를 으로 만드는 데 필요한 대각선 연산의 최소 횟수를 구하라.
입력
첫 줄에 격자의 행 수 ()과 열 수 ()을 나타내는 양의 정수 두 개가 주어진다. 행은 부터 까지, 열은 부터 까지 번호가 매겨진다.
이어지는 개의 줄에는 각각 공백으로 구분된 개의 수가 주어지며, 수는 또는 이다. 번째 줄은 격자의 행 에 해당한다.
출력
격자의 모든 원소를 으로 만드는 최소 대각선 연산 횟수를 한 줄에 출력한다. 불가능하면 을 출력한다.