#include <iostream>

using namespace std;

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