#include <bits/stdc++.h>

using namespace std;

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    vector<long long> st2(31);
    st2[0]=1;
    for(int i=1;i<=30;i++)
        st2[i]=st2[i-1]*2;
    int n,m;
    cin>>n>>m;
    vector<vector<long long>> a(n,vector<long long> (m));
    for(int i=0;i<n;i++)
        for(int j=0;j<m;j++)
            cin>>a[i][j];
    int cnt;
    long long sum=0;
    if(n==1)
    {
        for(int s=30;s>=0;s--)
        {
            cnt=0;
            for(int j=0;j<m;j++)
            {
                if(a[0][j]/st2[s]==1)
                {
                    a[0][j]-=st2[s];
                    cnt++;
                }
            }
            sum+=st2[s]*min(cnt,m-cnt);
        }
        cout << sum << endl;
        return 0;
    }
    if(n==2)
    {
        vector<long long> p;
        long long MinSum=st2[30];
        for(int i=0;i<m;i++)
        {
            sum=0;
            for(int j=0;j<=i;j++)
                p.push_back(a[0][j]);
            for(int j=i;j<m;j++)
                p.push_back(a[1][j]);
            for(int s=30;s>=0;s--)
            {
                cnt=0;
                for(int j=m+1;j>=0;j--)
                {
                    if(p[j]/st2[s]==1)
                    {
                        p[j]-=st2[s];
                        cnt++;
                    }
                }
                sum+=st2[s]*min(cnt,m+1-cnt);
            }
            MinSum=min(sum,MinSum);
            p.clear();
        }
        cout << MinSum << endl;
        return 0;
        // on moze iskoristiti poteze proizvoljan broj puta;
    }
    return 0;
}