#include<iostream>
#include<vector>
#include<algorithm>
#include<cstdio>
#include<cstring>
using namespace std;
int main(){
    int val[200][200];
    int dp[200][200];
    fill(val[0],val[0]+40000,0);
    fill(dp[0],dp[0]+40000,0);
    int endFlag=false;
    int cnt=0;
    while(true){
        char str[300];
        cin>>str;
        int len=strlen(str);
        val[cnt][1]=str[0]-'0';
        for(int i=2;i<len;i+=2)val[cnt][i/2+1]=str[i]-'0';
        cnt++;
        if(len==1){
            if(endFlag)break;
            endFlag=true;
        }
    }

    dp[0][1]=val[0][1];
    for(int i=1;i<(cnt+1)/2;i++){
        for(int j=1;j<=i+1;j++){
            dp[i][j]=val[i][j]+max(dp[i-1][j-1],dp[i-1][j]);
        }
    }
    for(int i=(cnt+1)/2;i<cnt;i++){
        for(int j=1;j<=cnt-i;j++){
            dp[i][j]=val[i][j]+max(dp[i-1][j],dp[i-1][j+1]);
        }
    }
    cout<<dp[cnt-1][1]<<endl;
}