
def church_numeral_to_int(f):
    summator = lambda x: x + 1
    return f(summator)(0)

zero = lambda f: lambda x: x
one = lambda f: lambda x: f(x)
two = lambda f: lambda x: f(f(x))
three = lambda f: lambda x: f(f(f(x)))
four = lambda f: lambda x: f(f(f(f(x))))

assert church_numeral_to_int(four) == 4

true = lambda x: lambda y: x
false = lambda x: lambda y: y # do you see, that false == zero ;)

sum = lambda a: lambda b: lambda f: lambda x: a(f)(b(f)(x))
prod = lambda a: lambda b: lambda f: a(b(f))
exp = lambda a: lambda b: b(a)

def int_to_church_numeral(value):
    numeral = zero
    for _ in range(value):
        numeral = sum(numeral)(one)
    return numeral

make_pair = lambda a: lambda b: lambda f: f(a)(b)

empty_array = false

# array is just a pair of head and tail!
# head is the first value, tail is the array of all other values
# insert is just inserting new element at the beginning of the array
insert = lambda arr: lambda new_el: make_pair(new_el)(arr)

# is_empty returns true when array is empty, otherwise it returns false 
is_empty = lambda arr: arr(lambda _: lambda _: lambda _: false)(true)


def decode_array(arr):
    res = []
    while not is_empty(arr)(True)(False):
        head = arr(true)
        tail = arr(false)
        res.append(church_numeral_to_int(head))
        arr = tail
    return res

assert decode_array(insert(insert(empty_array)(zero))(one)) == [1, 0]


secret_function = lambda secret_function: lambda left_arr: lambda right_arr: is_empty(left_arr)(right_arr)(
    left_arr(lambda head: lambda tail: secret_function(secret_function)(tail)(insert(right_arr)(head)))
)

solve = lambda solve: lambda arr: lambda counter: is_empty(arr)(zero)(
    arr(lambda head: lambda tail: sum(counter(head))(solve(solve)(tail)(sum(counter)(one))))
)


n = int(input())
data = list(map(int, input().split()))
assert len(data) == n

arr = empty_array
for value in reversed(data):
    numeral = int_to_church_numeral(value)
    arr = insert(arr)(numeral)

arr = secret_function(secret_function)(arr)(empty_array)
answer = solve(solve)(arr)(zero)

print(church_numeral_to_int(answer))