#include<iostream>
#include<cstdio>
#include<string>
#include<sstream>
#include<algorithm>
using namespace std;

int solve(int[][100],int ,int);
int main(){
  int data[100][100],limx,limy;
  string line;
  int x;
  char ch; // dammy

  //init
  for(int i=0;i<100;i++)
    for(int j=0;j<100;j++)
      data[i][j]=0;

  int i=0;
  while ( cin >> line){
    istringstream sin(line);
    int j=0;
    while ( sin >> x  ){
      //cout << x << endl;
      data[i][j]=x;
      sin >> ch;
      j++;
      limx=max(limx,j);
    }
    i++;
  }
  limy=i;

  printf("%d\n",solve(data,limx,limy));
  return 0;
}

int solve(int data[][100],int limx,int limy){
 
  int dp[limy+1][limx+1];

  //init
  for(int i=0;i<=limy;i++)
    for(int j=0;j<=limx;j++)
      dp[i][j]=0;


  dp[0][0]=data[0][0];
  for(int i=1;i<limy;i++){
    for(int j=0;j<limx;j++){
      if(j==0 && i<=limy/2)
	dp[i][j]=dp[i-1][j]+data[i][0];
      else if(j!=0 && i<=limy/2)
	dp[i][j]=max(dp[i-1][j-1]+data[i][j],dp[i-1][j]+data[i][j]);
      else
	dp[i][j]=max(dp[i-1][j]+data[i][j],dp[i-1][j+1]+data[i][j]);
    }
  }
  /* for(int i=0;i<limy;i++){
    for(int j=0;j<limx;j++)
      printf("%d ",dp[i][j]);
    puts("");
    }*/
  return dp[limy-1][0];
}