#include <stdio.h>
#include <iostream>

using namespace std;

int d[10000];

int dp[100];
int dpw[100];

int main()
{
	int n = 0;
	while(1 == scanf("%d",d + n)) n++;
	int k;
	int now = 0;
	for(int i = 1; i <= 50; i++)
	{
		if(now + i == n)
		{
			k = i;
			break;
		}
		now += i * 2;
	}
	dp[0] = d[0];
	now = 1;
	for(int i = 2; i <= k; i++)
	{
		dpw[0] = dp[0] + d[now];
		for(int j = 1; i < i - 1; i++) dpw[j] = max(dp[j - 1] + d[now + j],dp[j] + d[now + j]);
		dpw[i - 1] = dp[i - 2] + d[now + i - 1];
		for(int j = 0; j < i; j++) dp[j] = dpw[j];
		now += i;
	}
	for(int i = k - 1; i > 0; i--)
	{
		for(int j = 0; j < i; j++) dpw[j] = max(dp[j] + d[now + j],dp[j + 1] + d[now + j]);
		for(int j = 0; j < i; j++) dp[j] = dpw[j];
		now += i;
	}
	printf("%d\n",dp[0]);
	return 0;
}