using System;
namespace TakProg05
{
    internal class Program05
    {
        static void Main(string[] args)
        {
            var prviRed = Console.ReadLine();
            if (!int.TryParse(prviRed, out int N))
            {
                Console.WriteLine("Pogresan unos. Ocekuju se broj");
                return;
            }

            var A = new uint[N];
            var B = new uint[N];

            var red = Console.ReadLine();
            if (string.IsNullOrEmpty(red)) 
            {
                Console.WriteLine($"Pogresan unos. Ocekuje se {N} brojeva");
                return;
            }
            var nizAStr = red.Split(' ');
            if (nizAStr.Length != N)
            {
                Console.WriteLine($"Pogresan unos. Ocekuje se {N} brojeva");
                return;
            }

            red = Console.ReadLine();
            if (string.IsNullOrEmpty(red))
            {
                Console.WriteLine($"Pogresan unos. Ocekuje se {N} brojeva");
                return;
            }
            var nizBStr = red.Split(' ');
            if (nizBStr.Length != N)
            {
                Console.WriteLine($"Pogresan unos. Ocekuje se {N} brojeva");
                return;
            }
            for (int i = 0; i < N; i++)
            {
                if (!uint.TryParse(nizAStr[i], out uint brojA))
                {
                    Console.WriteLine("Pogresan unos. Ocekuje se broj.");
                    return;
                }
                if (!uint.TryParse(nizBStr[i], out uint brojB))
                {
                    Console.WriteLine("Pogresan unos. Ocekuje se broj.");
                    return;
                }
                A[i] = brojA;
                B[i] = brojB;
            }

            uint Max = 0;
            for (int i = 0; i < N ; i++)
            { 
                var rezA= A[i];
                var rezB = B[i];
                var rez = rezA * rezB;
                if (Max < rez) Max = rez;
                if (i < N - 1)
                {
                    for (int j = i + 1; j < N; j++)
                    {
                        var sledeciA = A[j];
                        rezA = rezA ^ sledeciA;
                        var sledeciB = B[j];
                        rezB = rezB & sledeciB;
                        rez = rezA * rezB;
                        if (Max < rez) Max = rez;
                    }
                }
            }
            Console.WriteLine(Max);
        }
    }
}