// 动态规划即可
// 考虑i点:dp[i - 2] + datas[i] > dp[i - 1], 否则不考虑,i点dp值为dp[i - 1]
#include <iostream>
#include <vector>
using namespace std;
void MainFunction(vector<int>& datas) {
int n = datas.size();
vector<int> dp;
// 初始化第一个和第二个
dp.push_back(datas[0]);
dp.push_back(max(datas[0], datas[1]));
for (int i = 2; i < n; i++){
dp.push_back(max(dp[i - 2] + datas[i], dp[i - 1]));
}
cout << *(dp.end()-1);
return;
}
int main() {
vector<int> datas;
int x;
while (cin >> x) {
datas.push_back(x);
}
MainFunction(datas);
return 0;
}