using System;

class Program
{
    static void Main()
    {
        int N = int.Parse(Console.ReadLine());
        string[] ulazA = Console.ReadLine().Split();
        string[] ulazB = Console.ReadLine().Split();

        int[] nizA = new int[N]; 
        int[] nizB = new int[N];

        for (int i = 0; i < N; i++)
        {
            nizA[i] = int.Parse(ulazA[i]);
            nizB[i] = int.Parse(ulazB[i]);
        }

        long maksimalnaVrednost = 0;

        for (int L = 0; L < N; L++)
        {
            int xorA = 0;
            int andB = nizB[L];

            for (int R = L; R < N; R++)
            {
                xorA ^= nizA[R];
                andB &= nizB[R];

                long trenutnaVrednost = (long)xorA * andB;
                if (trenutnaVrednost > maksimalnaVrednost)
                {
                    maksimalnaVrednost = trenutnaVrednost;
                }
            }
        }

        Console.WriteLine(maksimalnaVrednost);
    }
}