//
// main.cpp
// CT1
//
// Created by MAC10 on 2018/12/23.
// Copyright © 2018年 MAC10. All rights reserved.
//
#include <iostream>
#include <stdio.h>
using namespace std;
int n;
int data[100][100];
int F[100][100];
void inPut()
{
scanf("%d",&n);
for(int i=1;i<=n;++i)
{
for(int j=1;j<=i;++j)
{
scanf("%d",&data[i][j]);
}
}
}
void solve1()
{
for(int i=1;i<=n;++i)
{
for(int j=1;j<=i;++j)
{
if(j==1) F[i][j] = data[i][j] +F[i-1][j];
else if(j==n)
F[i][j] = data[i][j]+F[i-1][j];
else
F[i][j] = max(F[i-1][j],F[i-1][j-1])+data[i][j];
}
}
int ans =0;
for (int i=1; i<=n; ++i) {
ans = max(ans,F[n][i]);
}
printf("%d\n",ans);
}
int main()
{
freopen("input.txt", "r",stdin);
inPut();
solve1();
fclose(stdin);
}