#include<bits/stdc++.h>
using namespace std;
int n, ans = 0, s[1005][1005];
vector<vector<int>> v(1);
int dfs(int x, int y){
if(x == n)
return v[x][y];
if(s[x][y])
return s[x][y];
return s[x][y] = max(dfs(x + 1, y), dfs(x + 1, y + 1)) + v[x][y];
}signed main(){
scanf("%d", &n);
for(int i = 1; i <= n; ++i){
vector<int> a(1);
for(int j = 1; j <= i; ++j){
int k;
scanf("%d", &k);
a.push_back(k);
}v.push_back(a);
}printf("%d", dfs(1, 1));
return 0;
}