You are given an array $d_1, d_2, \dots, d_n$ consisting of $n$ integer numbers.

Your task is to split this array into three parts (some of which may be empty) in such a way that each element of the array belongs to exactly one of the three parts, and each of the parts forms a consecutive contiguous subsegment (possibly, empty) of the original array. 

Let the sum of elements of the first part be $sum_1$, the sum of elements of the second part be $sum_2$ and the sum of elements of the third part be $sum_3$. Among all possible ways to split the array you have to choose a way such that $sum_1 = sum_3$ and $sum_1$ is maximum possible.

More formally, if the first part of the array contains $a$ elements, the second part of the array contains $b$ elements and the third part contains $c$ elements, then:

$$sum_1 = \sum\limits_{1 \le i \le a}d_i,$$ $$sum_2 = \sum\limits_{a + 1 \le i \le a + b}d_i,$$ $$sum_3 = \sum\limits_{a + b + 1 \le i \le a + b + c}d_i.$$

The sum of an empty array is $0$.

Your task is to find a way to split the array such that $sum_1 = sum_3$ and $sum_1$ is maximum possible.
The first line of the input contains one integer $n$ ($1 \le n \le 2 \cdot 10^5$) — the number of elements in the array $d$.

The second line of the input contains $n$ integers $d_1, d_2, \dots, d_n$ ($1 \le d_i \le 10^9$) — the elements of the array $d$.
5
1 3 1 1 4
5
5
1 3 2 1 4
4
3
4 1 2
0
1
1000000000
0
2
1 1
1
5
1 3 5 4 5
9

def answer(n, d):
    
    sum1 = [d[0]]
    for i in range(1, n, 1):
        sum1.append(d[i] + sum1[-1])
    #create set of sum3 values.
    prev_sum = d[-1]
    set3 = set()
    for i in range(n-2, -1, -1):
        set3.add(d[i] + prev_sum)
        prev_sum += d[i]
    #start at right side where sum1 is greatest.
    for i in range(n-2, -1, -1):
        if sum1[i] in set3:
            return sum1[i]

    return 0

def answer2(n, d):
    sum1 = [d[0]]
    for i in range(1, n, 1):
        sum1.append(d[i] + sum1[-1])
    #sum1 created
    sum3 = [d[-1]]
    for i in range(n-2, -1, -1):
        sum3.append(d[i] + sum3[-1])
    sum3.reverse()
    #sum3 created.
    lpos = 0
    rpos = (n-1)
    best = 0
    while lpos < rpos:
        #print('lpos=', lpos, 'sum1[lpos]=', sum1[lpos], 'rpos=', rpos, 'sum3[rpos]=', sum3[rpos])
        if sum1[lpos] == sum3[rpos]:
            best = sum1[lpos]
            lpos += 1
            rpos -= 1
        elif sum1[lpos] < sum3[rpos]:
            lpos += 1
        else: #sum1[lpos] > sum3[rpos]
            rpos -= 1

    return best



def main():
    n = int(input())
    d = [int(i) for i in input().split()]
    print(answer2(n, d))


    return
main()