#先获取输入数据
l=int(input()) #数组长度转换成int类型
nums=list(map(int,input().split()))  #一列数字转换成列表
if l<=2:
    print(max(nums))  #若数组长度小于等于2,直接返回最大值
else:
#创建dp数组,里面存放满足不相邻条件的最大值
    dp=[0]*l
    for i in range(l):
	#分三种情况处理,遍历第一个数字时,dp里没有数字,因此它本身就是最大值
		if i==0:
        	dp[i]=nums[i]
		#第二种:最大值再在dp[i-1]和nums[i]里选一个最大值
        if i==1:
            dp[i]=max(nums[i],dp[i-1])
		#第三种:因为数字已经开始有第三个,满足不相互邻条件了,最大值就在dp[i-1]和dp[i-2]+nums[i]中取最大的
        if i>=2:
            dp[i]=max(dp[i-1],dp[i-2]+nums[i])
	#最终最后一个dp[-1]存放的就必然是一个不相邻的连续数字最大值之和
    print(dp[-1])