#include <stdio.h>
unsigned n,a[200000],b[200000],l,r,maxxor=0,maxand=0,max;
void maxdvaniza(){
	int i,j,l=0,r=n-1,temp1,temp2;
	while(l<n-1){
		temp1=a[l];
		temp2=b[l];
	for(i=l;i<n-1;i++){
			temp1=temp1^a[i+1];
			temp2=temp2&b[i+1];
		}
		if(temp1>maxxor)maxxor=temp1;
		if(temp2>maxand)maxand=temp2;
		temp1=a[0];
		temp2=b[0];
	for(i=0;i<r;i++){
		temp1=temp1^a[i+1];
		temp2=temp2&b[i+1];
	}
		r--;
		l++;
		if(temp1>maxxor)maxxor=temp1;
		if(temp2>maxand)maxand=temp2;
		max=maxxor*maxand;
	}
}
main(){
	int i;
	scanf("%u",&n);
	for(i=0;i<n;i++){
		scanf("%u",&a[i]);
	}
	for(i=0;i<n;i++){
		scanf("%u",&b[i]);
	}
	maxdvaniza();
	printf("%u",max);
}