#include <iostream>

using namespace std;

int main() {
	unsigned int N, M;
	cin >> N >> M;
	
	unsigned int niz[N][M];
	unsigned int rezultat = 0;
	for (int i = 0; i < N; i++){
		for (int j = 0; j < M; j++){
			cin >> niz[i][j];
		}
	}
	
	if (N == 1)
	{
		unsigned int brojBitova[32] = {0};
		unsigned int polaM = M/2;
		
		for (unsigned int i = 0; i < M; i++){
			for (unsigned int j = 0; j < 32; j++){
				if ((niz[0][i] >> j) % 2 == 1){	// provera da li je j-ti bit 1
					brojBitova[j]++;
				}
			}
		}
		
		for (unsigned int i = 0; i < 32; i++){
			if (brojBitova[i] > polaM) {
				brojBitova[i] = M - brojBitova[i];
			}
		}
		
		for (unsigned int i = 0; i < 32; i++){
			rezultat += brojBitova[i] * (1 << i);
		}
	} 
	else if (M == 1)
	{
		unsigned int brojBitova[32] = {0};
		unsigned int polaN = N/2;
		
		for (unsigned int i = 0; i < N; i++){
			for (unsigned int j = 0; j < 32; j++){
				if ((niz[i][0] >> j) % 2 == 1){	// provera da li je j-ti bit 1
					brojBitova[j]++;
				}
			}
		}
		
		for (unsigned int i = 0; i < 32; i++){
			if (brojBitova[i] > polaN) {
				brojBitova[i] = N - brojBitova[i];
			}
		}
		
		for (unsigned int i = 0; i < 32; i++){
			rezultat += brojBitova[i] * (1 << i);
		}
	}
	
	cout << rezultat;
}