<pre>import math


def find(x, actual, actualindex, fr=0):
    if len(x) &lt;= fr:
        return 0
    for i in range(fr, len(x)):
        #print(actual, x[i], i, actualindex, actual+x[i], i-actualindex)
        if actual + x[i] == abs(i - actualindex):
            actualindexnew = i
            actualnew = x[i]
            yield actualindexnew
            yield from find(x, actualnew, actualindexnew, fr+1)
    

n = int(input())

while n != 0:

    x = []

    for q in input().split(' '):
        x.append(int(q))

    actualindex = 0
    actual = x[0]
    que = []
    maximum = 0
    for i in find(x, actual, actualindex):
        #print(i)
        if i &gt; maximum:
            maximum = i


    print(maximum)
    #print()

    n = int(input())


</pre>
