#include<iostream>
#include<algorithm>
#include<queue>
#include<map>
#include<string.h>
#include<stdio.h>
#include<math.h>
#include<functional>
#include <memory.h>
#include <stack>
#include <strstream>
#include <iomanip>


using namespace std;



int main() {
    string s[100];
    int num[100][100]={0};
    int l=0;
    bool flag=false;
    while(getline(cin,s[l])){
        int n=1;
        s[l]+=",";
        for(int i=0; i<s[l].length(); i++){
            string temp;
            while(s[l][i]!=','){
                temp+=s[l][i];
                i++;
            }
            istrstream istr(temp.data());
            istr>>num[l][n];
            n++;
        }
        if(!flag&&s[l].length()==2){
            flag=true;
        }else if(flag&&s[l].length()==2){
            l++;
            break;
        }
        l++;
        
    }
    
    //cout<<l<<endl;
    
    int now_l=1;
    int max_num[100]={0};
    max_num[1]=num[0][1];
    while(now_l<l){
        if(now_l<=l/2){
            int temp_max_num[100]={0};
            for(int i=0; i<60; i++){
                temp_max_num[i]=max_num[i]+num[now_l][i];
            }
            for(int i=0; i<60; i++){
                if(temp_max_num[i]<max_num[i]+num[now_l][i+1]){
                    temp_max_num[i]=max_num[i]+num[now_l][i+1];
                }
            }
            for(int i=0; i<60; i++){
                max_num[i]=temp_max_num[i];
            }
        }else{
            int temp_max_num[100]={0};
            for(int i=0; i<60; i++){
                temp_max_num[i]=max_num[i]+num[now_l][i];
            }
            for(int i=1; i<60; i++){
                if(temp_max_num[i]<max_num[i]+num[now_l][i-1]){
                    temp_max_num[i]=max_num[i]+num[now_l][i-1];
                }
            }
            for(int i=0; i<60; i++){
                max_num[i]=temp_max_num[i];
            }
        }
        /*for(int i=0; i<10; i++){
            cout<<setw(4) <<max_num[i]<<" ";
        }cout<<endl;*/
        now_l++;
        
        
        
        
        
    }
    
    /*for(int i=0; i<10; i++){
        cout<<max_num[i]<<" ";
        
    }*/
    cout<<max_num[1]<<endl;
    
    /*for(int i=0; i<l; i++){
        for(int j=0; j<7; j++){
            cout<<num[i][j]<<" ";
        }
        cout<<endl;

    }*/
}