#include <algorithm>
#include <iostream>
using namespace std;
#include <vector>
#include <algorithm>
int main() {
int a;
cin>>a;
vector<vector<int>>s(a+1,vector<int>(a+1,0));
for(int i=1;i<=a;i++){
for(int j=1;j<=i;j++){
cin>>s[i][j];
}
}
vector<vector<long long>>dp(a+1,vector<long long>(a+1,0));
dp[1][1]=s[1][1];
for(int i=2;i<=a;i++){
for(int j=1;j<=i;j++){
if(j==1)dp[i][j]=dp[i-1][j]+s[i][j];
else if(j==i)dp[i][j]=dp[i-1][j-1]+s[i][j];
else dp[i][j]=max(dp[i-1][j],dp[i-1][j-1])+s[i][j];
}
}
long long zuida=dp[a][1];
for(int i=2;i<=a;i++){
zuida=max(zuida,dp[a][i]);
}
cout<<zuida<<endl;
return 0;
}
// 64 位输出请用 printf("%lld")