#include <stdio.h>

long long ans = -1;

void go(int d, long long p, long long q, long long r)
{
	long long s = 1ll << d;
	if ((p ^ q ^ r) == 0){
		if (ans < p)
			ans = p;
		return;
	}
	if ((p ^ q ^ r) % (s * 2)) return;
	go(d + 1, p, q, r);
	if (s < p) go(d + 1, p - s, q + s, r);
}

int main()
{
	int n; long long p, q, r = 0;
	scanf ("%d %lld %lld", &n, &p, &q);
	for (int i = 2; i < n; i++){
		long long x; scanf ("%lld", &x); r ^= x;
	}

	go(0, p, q, r);
	if (ans == -1) printf ("-1\n");
	else printf ("%lld\n", p - ans);
	return 0;
}
