Ridhiman challenged Ashish to find the maximum valued subsequence of an array $a$ of size $n$ consisting of positive integers. 

The value of a non-empty subsequence of $k$ elements of $a$ is defined as $\sum 2^i$ over all integers $i \ge 0$ such that at least $\max(1, k - 2)$ elements of the subsequence have the $i$-th bit set in their binary representation (value $x$ has the $i$-th bit set in its binary representation if $\lfloor \frac{x}{2^i} \rfloor \mod 2$ is equal to $1$). 

Recall that $b$ is a subsequence of $a$, if $b$ can be obtained by deleting some(possibly zero) elements from $a$.

Help Ashish find the maximum value he can get by choosing some subsequence of $a$.


-----Input-----

The first line of the input consists of a single integer $n$ $(1 \le n \le 500)$ — the size of $a$.

The next line consists of $n$ space-separated integers — the elements of the array $(1 \le a_i \le 10^{18})$.


-----Output-----

Print a single integer — the maximum value Ashish can get by choosing some subsequence of $a$.


-----Examples-----
Input
3
2 1 3

Output
3
Input
3
3 1 4

Output
7
Input
1
1

Output
1
Input
4
7 7 1 1

Output
7


-----Note-----

For the first test case, Ashish can pick the subsequence $\{{2, 3}\}$ of size $2$. The binary representation of $2$ is 10 and that of $3$ is 11. Since $\max(k - 2, 1)$ is equal to $1$, the value of the subsequence is $2^0 + 2^1$ (both $2$ and $3$ have $1$-st bit set in their binary representation and $3$ has $0$-th bit set in its binary representation). Note that he could also pick the subsequence $\{{3\}}$ or $\{{2, 1, 3\}}$.

For the second test case, Ashish can pick the subsequence $\{{3, 4\}}$ with value $7$.

For the third test case, Ashish can pick the subsequence $\{{1\}}$ with value $1$.

For the fourth test case, Ashish can pick the subsequence $\{{7, 7\}}$ with value $7$.

Difficulty: interview

Starter code:

Solutions:
n = int(input())
l = list(map(int, input().split()))


best = 0
for i in range(n):
    for j in range(i, n):
        for k in range(j, n):
            best = max(best, l[i] | l[j] | l[k])
print(best)
            


n = int(input())
a = list(map(int,input().split()))
wynik = 0
if n < 3:
	wyn = a[0]
	for i in range(1,n):
		wyn = wyn|a[i]
	print(wyn)
else:
	for i in range(n):
		for j in range(i+1,n):
			for k in range(j+1,n):
				wynik = max(wynik, (a[i]|a[j])|a[k])
	print(wynik)

import sys
input = sys.stdin.readline

n=int(input())
A=list(map(int,input().split()))

if n<=3:
    X=0
    for a in A:
        X|=a
    print(X)

else:
    ANS=0
    for i in range(n):
        for j in range(i+1,n):
            for k in range(j+1,n):
                ANS=max(ANS,A[i]|A[j]|A[k])

    print(ANS)


n=int(input())
l=input().split()
li=[int(i) for i in l]
dp=[0 for i in range(n)]
if(n==1):
    print(li[0])
elif(n==2):
    print(li[0]|li[1])
else:
    maxa=0
    for i in range(n):
        for j in range(i+1,n):
            for k in range(j+1,n):
                curr=(li[i]|li[j])|li[k]
                if(curr>maxa):
                    maxa=curr
    print(maxa)