#include <iostream>
#include <vector>
using namespace std;

int main() {
    vector<int> a;//存储每个星尘的能量
    int num;
    while(cin >> num)
    {
        a.push_back(num);
    }
    int len=a.size();
    if(len==0)
    {
        cout<<0;
        return 0;
    }
    if(len==1)
    {
        cout<<a[0];
        return 0;
    }
    vector<int> dp(len,0);//动态规划数组,dp[i]代表前i+1个星尘所能获得的最大值
    dp[0]=a[0];
    dp[1]=max(a[0], a[1]);
    for(int i=2; i<len; i++)
    {
        //选第i个或者不选第i个
        dp[i]=max( dp[i-2]+a[i], dp[i-1]);
    }
    cout<<dp[len-1];
    return 0;
}
// 64 位输出请用 printf("%lld")