#include <iostream>
#include <sstream>
#include <cstring>
using namespace std;

int main(void){
	int n,t[102][102];
	char ch;
	string s;

	for(n=0;cin>>s;n++){
		stringstream ss(s);
		for(int j=0;;j++){
			ss>>t[n][j];
			if(!(ss>>ch)) break;
		}
	}

	int dp[102][102];
	memset(dp,-1,sizeof(dp));

	//ツ陳可崢づ個δ可イツδ督づ慊づ繰ツづィツ陛板つキ
	dp[0][0] = t[0][0];
	for(int i=0;i<n/2;i++){
		for(int j=0;j<=i;j++){
			dp[i+1][j] = max(dp[i+1][j],dp[i][j]+t[i+1][j]);
			dp[i+1][j+1] = max(dp[i+1][j+1],dp[i][j]+t[i+1][j+1]);
		}
	}

	//ツ陳可崢づ個δ可イツδ督づ個可コツつゥツづァツ催古」ツづ慊づ繰ツづィツ陛板つキ
	for(int i=n/2+1;i<n;i++){
		for(int j=0;j<n-i;j++){
			dp[i][j] = max(dp[i-1][j]+t[i][j], dp[i-1][j+1]+t[i][j]);
		}
	}

	cout<<dp[n-1][0]<<endl;

	return 0;
}