program NajvecaVrednostPodniza;
const
MAXN = 200000;
type
TIntArray = array[1..MAXN] of LongInt;
var
N, i, j: Integer;
A, B: TIntArray;
maxVrednost, trenutniXor, trenutniAnd, trenutnaVrednost: LongInt;
begin
readln(N);
for i := 1 to N do
read(A[i]);
readln;
for i := 1 to N do
read(B[i]);
readln;
maxVrednost := 0;
for i := 1 to N do
begin
trenutniXor := 0;
trenutniAnd := B[i];
for j := i to N do
begin
trenutniXor := trenutniXor xor A[j];
trenutniAnd := trenutniAnd and B[j];
trenutnaVrednost := trenutniXor * trenutniAnd;
if trenutnaVrednost > maxVrednost then
maxVrednost := trenutnaVrednost;
end;
end;
writeln(maxVrednost);
end.