#include<bits/stdc++.h>
using namespace std;
using ll = long long;
using vvi = vector<vector<int>>;
int solve(vector<vector<int>>& b) {
int N = b.size(), rowSum = 0, colSum = 0, rowSwap = 0, colSwap = 0;
for (int i = 0; i < N; ++i) {
for (int j = 0; j < N; ++j) {
if (b[0][0]^b[i][0]^b[0][j]^b[i][j]) {
return -1;
}
}
}
for (int i = 0; i < N; ++i) {
rowSum += b[0][i];
colSum += b[i][0];
rowSwap += b[i][0] == i % 2;
colSwap += b[0][i] == i % 2;
}
if (rowSum != N / 2 && rowSum != (N + 1) / 2) return -1;
if (colSum != N / 2 && colSum != (N + 1) / 2) return -1;
if (N % 2) {
if (colSwap % 2) colSwap = N - colSwap;
if (rowSwap % 2) rowSwap = N - rowSwap;
}
else {
colSwap = min(N - colSwap, colSwap);
rowSwap = min(N - rowSwap, rowSwap);
}
return (colSwap + rowSwap) / 2;
}
int main() {
ll n, m;
cin >> n >> m;
vvi v(n, vector<int>(m));
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
cin >> v[i][j];
}
}
cout << solve(v);
}
{"html5":"htmlmixed","css":"css","javascript":"javascript","php":"php","python":"python","ruby":"ruby","lua":"text\/x-lua","bash":"text\/x-sh","go":"go","c":"text\/x-csrc","cpp":"text\/x-c++src","diff":"diff","latex":"stex","sql":"sql","xml":"xml","apl":"apl","asterisk":"asterisk","c_loadrunner":"text\/x-csrc","c_mac":"text\/x-csrc","coffeescript":"text\/x-coffeescript","csharp":"text\/x-csharp","d":"d","ecmascript":"javascript","erlang":"erlang","groovy":"text\/x-groovy","haskell":"text\/x-haskell","haxe":"text\/x-haxe","html4strict":"htmlmixed","java":"text\/x-java","java5":"text\/x-java","jquery":"javascript","mirc":"mirc","mysql":"sql","ocaml":"text\/x-ocaml","pascal":"text\/x-pascal","perl":"perl","perl6":"perl","plsql":"sql","properties":"text\/x-properties","q":"text\/x-q","scala":"scala","scheme":"text\/x-scheme","tcl":"text\/x-tcl","vb":"text\/x-vb","verilog":"text\/x-verilog","yaml":"text\/x-yaml","z80":"text\/x-z80"}