#include <iostream>
using namespace std;
int main ()
{
int i; //循环变量
int j;
int N; //行数
int input[400][400];
int cur_max[400][400];//cur_max[i][j]表示到(i,j)的最大值
int max = 0; //记录最大值
cin >> N;
memset(input, 0, sizeof(input));
memset(cur_max, 0, sizeof(cur_max));
for (i = 1; i <= N; i++)
for (j = 1; j <= i; j++)
{
cin >> input[i][j];
if (j == 1)
cur_max[i][j] = cur_max[i-1][j] + input[i][j];
else if (j < i)
{
if (cur_max[i-1][j-1] > cur_max[i-1][j])
cur_max[i][j] = cur_max[i-1][j-1] + input[i][j];
else
cur_max[i][j] = cur_max[i-1][j] + input[i][j];
}
else if (j == i)
cur_max[i][j] = cur_max[i-1][j-1] + input[i][j];
}
for (j = 1; j <= N; j++)
if (cur_max[N][j] > max)
max = cur_max[N][j];
cout << max << endl;
return 0;
}