n = int(input())
score = [int(input()) for _ in range(n)]
# 계단이 2개 이하일 때다
if n == 1:
print(score[0])
elif n == 2:
print(score[0] + score[1])
#여기부터는 계단이 3개 이상일 때다
else:
dp = [0] * n
dp[0] = score[0]
dp[1] = score[0] + score[1]
dp[2] = max(score[0] + score[2], score[1] + score[2])
for i in range(3, n):
#i-2번째 계단부터 고려한다
#i-1번째 계단부터 고려하지 않는 이유는 i-2번째 계단은 뭔지 모르기 때문이다
dp[i] = max(dp[i-2] + score[i], dp[i-3] + score[i-1] + score[i])
print(dp[n-1])
import sys
def nCr(n, r):
r = min(r, n - r)
# C(n,r) 과 C(n, n-r)은 같으니 둘 중 계산을 덜 하는 쪽으로 고른다.
if r == 0:
return 1
up = 1 #분자
down = 1 #분모
for i in range(1, r + 1):
up *= n - r + i # 분자의 n*(n-1)*...*(n-r+1)를 계산한다
down *= i # 분모의 r!이다
return up // down
def main():
data = sys.stdin.read().strip().split()
n = int(data[0]); m = int(data[1])
print(nCr(n, m))
if __name__ == "__main__":
main()