using System;

namespace Mamuransam
{
    class Program
    {
        public static long Rezultat(int L,int R, int[]A, int[]B)
        {
            long xor = 0 ^ A[L];
            long and = B[L];
            for(int i = L+1;i<=R;i++)
            {
                xor ^= A[i];
                and &= B[i];
            }
            return xor*and;
        }
        static void Main(string[] args)
        {
            int N = int.Parse(Console.ReadLine());
            int[] A = new int[N];
            int[] B = new int[N];
            string[] s = Console.ReadLine().Split();
            for (int i = 0; i < N; i++)
            {
                A[i] = int.Parse(s[i]);
            }
            s = Console.ReadLine().Split();
            for (int i = 0; i < N; i++)
            {
                B[i] = int.Parse(s[i]);
            }
            long max = 0;
            for (int i = 0; i < N; i++)
            {
                for (int j = i;j<N;j++)
                {
                    if (Rezultat(i, j, A, B) > max)
                        max = Rezultat(i, j, A, B);
                }
            }
            Console.WriteLine(max);
        }
    }
}