l1=int(input())  #分别取出一二行输入的值
l2=list(map(int,input().split()))
cost=0
dp=[] #创建dp数组,用于记录到达i层的最小花费
for i in range(l1): #遍历每一层
    if i<=1:  #第0、1层最少花费就是他们自己,你总不可能1层的最小花费还是0+1层的花费吧
        dp.append(l2[i])
        #后面的花费就是取前一层或前两层加上本层花费
    else:dp.append(min(dp[i-1]+l2[i],dp[i-2]+l2[i]))
#最后可能是一步上去或者两步上去,因此要取dp数组倒数两个最小的那个
print(min(dp[-1],dp[-2]))