#include
<iostream>
using namespace
std;
int main(){
int rows;
cin>>rows;//输入三角数组的行数
int a[100][100];//直接声明一个100*100的数组,保证能存放所有的可能三角数组
for(int i=0;i<rows;++i){ //输入三角数组的值
for(int j=0;j<=i;++j){
cin>>a[i][j];
}
}
int preMax;
for(int i=rows-2;i>=0;--i){ //自底向上计算每个元素到最底层的最大值
for(int j=0;j<=i;++j){
preMax=(a[i+1][j]<a[i+1][j+1]?a[i+1][j+1]:a[i+1][j]);
a[i][j]=a[i][j]+preMax;
}
}
cout<<a[0][0];//所求的最大值已经存放在a[0][0]中,输出即可。
return 0;
}