#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
int main(){
  string s;
  int f[100][100]={0},dp[100][100]={0},y=0,z=0;
  while(cin >>s){
    for(int i=0,t=0,x=0; i<s.size(); i++){
      if(s[i]>='0' && s[i]<='9') t = t*10+s[i]-'0';
      if(s[i] == ',' || i == s.size()-1){
	f[x][y] = t;
	t = 0;
	x++;
	if(z<x) z = x;
      }
    }
    y++;
  }
  dp[0][0] = f[0][0];
  for(int i=0; i<z-1; i++){
    for(int j=0; j<z; j++){
      dp[j][i+1] = max(dp[j][i+1],dp[j][i]+f[j][i+1]);
      dp[j+1][i+1] = max(dp[j+1][i+1],dp[j][i]+f[j+1][i+1]);
    }
  }
  for(int i=z; i<2*z-1; i++){
    for(int j=0; j<z; j++){
      dp[j][i] = f[j][i]+max(dp[j][i-1],dp[j+1][i-1]);
    }
  }
  cout <<dp[0][z*2-2]<<endl;
  return 0;
}