#include <iostream>
#include <algorithm>
#include <cassert>
#include <cctype>
#include <cstdio>
#include <math.h>
#include <map>
#include <queue>
#include <string>
using namespace std;

int n[99][50],m[99][50];
string s[100];

int main(){
	int l=0;
	while(getline(cin,s[l]))l++;
	for(int i=0;i<l;i++){
		int pos=0,cur=0;
		while(pos<s[i].size()){
		if(isdigit(s[i][pos]))n[i][cur]=n[i][cur]*10+s[i][pos]-'0';
		else cur++;
		pos++;
		}
	}
	m[0][0]=n[0][0];
	for(int i=1;i<=l/2;i++){
		m[i][0]=m[i-1][0]+n[i][0];
		m[i][i]=m[i-1][i-1]+n[i][i];
		for(int j=1;j<i;j++)m[i][j]=max(m[i-1][j-1],m[i-1][j])+n[i][j];
	}
	for(int i=l/2+1;i<l;i++){
		for(int j=0;j<l-i;j++){
			m[i][j]=max(m[i-1][j],m[i-1][j+1])+n[i][j];
		}
	}
	cout<<m[l-1][0]<<endl;
}