    図１に例示するように整数（0 以上 99 以下）をひしがたに並べます。このような、ひしがたを表すデータを読み込んで、一番上からスタートして一番下まで次のルールに従って進むとき、通過する整数の和の最大値を出力するプログラムを作成してください。    * 各ステップで、対角線上の左下か対角線上の右下に進むことができます。  例えば図1の例では、図2に示すように、7,3,8,7,5,7,8,3,7を選んで通ったとき、その和は最大の 55 （7+3+8+7+5+7+8+3+7=55） となります。
path=[]
while(True):
    try:
        temp=list(map(int,input().split(',')))
        path.append(temp)
    except:
        break

INF=1e8
path=[]
dp=[]
while(True):
    try:
        temp=list(map(int,input().split(',')))
        path.append(temp)
        dp.append([INF for i in range(len(temp))])
    except:
        break
dp[0][0]=path[0][0]
for i in range(1,len(dp)):
    for j in range(len(dp[i])):
        if len(dp[i])>len(dp[i-1]):
            start=0 if j-1<0 else j-1
            dp[i][j]=max(dp[i-1][start:j+1])+path[i][j]
        else:
            dp[i][j]=max(dp[i-1][j:j+2])+path[i][j]
print(dp[-1][-1])
