#include<cstdio>
#include<iostream>
using namespace std;
#define N 1001
int a[3][N],f[3][N];
int n;
inline int getint(){
char ch;
int x = 0;
while (!isdigit(ch = getchar()));
x = ch - 48;
while (isdigit(ch = getchar())) x = x * 10 + ch - 48;
return x;
}
int main(){
freopen("numtri.in","r",stdin);
freopen("numtri.out","w",stdout);
n = getint();
a[1][1] = getint();
f[1][1] = a[1][1];
for (int i = 2; i <= n; i++){
for (int j = 1; j <= i; j++){
a[i & 1][j] = getint();
f[(i & 1)][j] = max(f[1 - (i & 1)][j],f[1 - (i & 1)][j - 1]) + a[(i & 1)][j];
}
}
int ans = 0;
for (int i = 1; i <= n; i++) ans = max(ans,max(f[1 - (n & 1)][i],f[n & 1][i]));
printf("%d\n",ans);
return 0;
}