/**
题意:
题意不明,
实则是,上一条路能选他对应下一条和他下一条的右边那一条。

思路:
01背包相似。
*/
#include<cstdio>
#include<algorithm>
using namespace std;
#define MAXN 101
int N;
int mountain[MAXN][MAXN];
int dp[MAXN + 1][MAXN + 1];

int main(void){

scanf("%d", &N);
for(int i = 0 ; i < N; ++i){
for(int j = 0; j <= i; ++j)
scanf("%d", &mountain[i][j]);
}
for(int i = N - 1; i >= 0; --i){
for(int j = 0; j <= i; ++j){
dp[i][j] = max(dp[i + 1][j], dp[i + 1][j + 1]) + mountain[i][j];
}
}
printf("%d", dp[0][0]);
return 0;
}