#include <iostream>#include <algorithm>#include <unordered_map>#include <vector>using namespace std;typedef pair<int,int> PII;int main(){int n,m;cin>>n>>m;//哈希表,坐标奇数偶数位置unordered_map<int,int>AS,BS;for(int i=0;i<n;i++){for(int j=0;j<m;j++){int x;cin>>x;if((i+j)%2) AS[x]++;else BS[x]++;}}//出现次数和数字,哈希表转成数组vector<PII> A,B;for(auto item:AS) A.push_back({item.second,item.first});for(auto item:BS) B.push_back({item.second,item.first});//排序sort(A.begin(),A.end()),reverse(A.begin(),A.end());sort(B.begin(),B.end()),reverse(B.begin(),B.end());int res=0;for(int i=0;i<2&&i<A.size();i++){for(int j=0;j<2&&j<B.size();j++){//数字相同选最大if(A[i].second==B[j].second) res=max(res,max(A[i].first,B[j].first));//不同时,次数相加,都不改else res=max(res,A[i].first+B[j].first);}}//只有偶数或者奇数时if(A.empty()) res=B[0].first;if(B.empty()) res=A[0].first;cout<<n*m-res<<endl;}