program discesa;
Uses Math;
var A,i,j, ans:integer;
tab, DP :array[1..10,1..10] of integer;
begin
readln(A);
for i:=1 to A do begin
for j:=1 to i do read(tab[i,j]);
readln; end;
for i:=1 to A do
begin
for j:=1 to i do write(tab[i,j],' ');
writeln;
end;
for i:=1 to A do
for j:=1 to A do DP[i,j]:=0;
DP[1,1]:=tab[1,1]; DP[2,1]:=DP[1,1]+tab[2,1]; DP[2,2]:=DP[1,1]+tab[2,2];
for i:=2 to A do DP[i,1]:=DP[i-1,1]+ tab[i,1];
for i:=3 to A do
for j:=2 to i do
tab[i,j]:=max(DP[i-1,j-1]+tab[i,j],DP[i-1,j]+tab[i,j]);
ans:=0;
for i:=1 to A do if DP[A,i]>ans then ans:=DP[A,i] ;
writeln(ans);
end.
cHJvZ3JhbSBkaXNjZXNhOwpVc2VzIE1hdGg7CnZhciBBLGksaiwgYW5zOmludGVnZXI7CiAgICB0YWIsIERQIDphcnJheVsxLi4xMCwxLi4xMF0gb2YgaW50ZWdlcjsKYmVnaW4KCXJlYWRsbihBKTsKCWZvciBpOj0xIHRvIEEgZG8gYmVnaW4KCSAgICAgICAgICAgIGZvciBqOj0xIHRvIGkgZG8gcmVhZCh0YWJbaSxqXSk7CgkgICAgICAgICAgICByZWFkbG47IGVuZDsKCWZvciBpOj0xIHRvIEEgZG8KCSAgICAgICAgICAgYmVnaW4KCSAgICAgICAgICAgIGZvciBqOj0xIHRvIGkgZG8gd3JpdGUodGFiW2ksal0sJyAnKTsgICAKCSAgICAgICAgICAgIHdyaXRlbG47CgkgICAgICAgICAgICBlbmQ7CiAgICBmb3IgaTo9MSB0byBBIGRvCiAgICAgICAgICAgICAgICBmb3Igajo9MSB0byBBIGRvIERQW2ksal06PTA7CiAgICBEUFsxLDFdOj10YWJbMSwxXTsgIERQWzIsMV06PURQWzEsMV0rdGFiWzIsMV07IERQWzIsMl06PURQWzEsMV0rdGFiWzIsMl07ICAgICAgICAgCiAgICBmb3IgaTo9MiB0byBBIGRvIERQW2ksMV06PURQW2ktMSwxXSsgdGFiW2ksMV07ICAgICAgICAgICAKCWZvciBpOj0zIHRvIEEgIGRvCgkgICAgICAgICBmb3Igajo9MiB0byBpIGRvCgkgICAgICAgICAgICAgICAgdGFiW2ksal06PW1heChEUFtpLTEsai0xXSt0YWJbaSxqXSxEUFtpLTEsal0rdGFiW2ksal0pOwoJYW5zOj0wOwoJZm9yIGk6PTEgdG8gQSBkbyBpZiBEUFtBLGldPmFucyB0aGVuIGFuczo9RFBbQSxpXSA7Cgl3cml0ZWxuKGFucyk7CmVuZC4=