program discesa;
Uses Math;
var A,i,j, ans:integer;
tab, DP :array[1..10,1..10] of integer;
begin
(*assign(input, 'input.txt'); reset(input);
assign(output, 'output.txt'); rewrite(output);*)
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
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
DP[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.
cHJvZ3JhbSBkaXNjZXNhOwpVc2VzIE1hdGg7CnZhciBBLGksaiwgYW5zOmludGVnZXI7CiAgICB0YWIsIERQIDphcnJheVsxLi4xMCwxLi4xMF0gb2YgaW50ZWdlcjsKYmVnaW4KICAgICgqYXNzaWduKGlucHV0LCAgJ2lucHV0LnR4dCcpOyAgcmVzZXQoaW5wdXQpOwogICAgYXNzaWduKG91dHB1dCwgJ291dHB1dC50eHQnKTsgcmV3cml0ZShvdXRwdXQpOyopCglyZWFkbG4oQSk7Cglmb3IgaTo9MSB0byBBIGRvIAoJICAgICAgICAgICAgICAgYmVnaW4KCSAgICAgICAgICAgICAgICAgICBmb3Igajo9MSB0byBpIGRvIHJlYWQodGFiW2ksal0pOwoJICAgICAgICAgICAgICAgICAgIHJlYWRsbjsgCgkgICAgICAgICAgICAgICBlbmQ7CiAgICBmb3IgaTo9MSB0byBBIGRvCiAgICAgICAgICAgICAgICBmb3Igajo9MSB0byBBIGRvIERQW2ksal06PTA7CiAgICBEUFsxLDFdOj10YWJbMSwxXTsgIERQWzIsMV06PURQWzEsMV0rdGFiWzIsMV07IERQWzIsMl06PURQWzEsMV0rdGFiWzIsMl07ICAgICAgICAgCiAgICBmb3IgaTo9MiB0byBBIGRvIERQW2ksMV06PURQW2ktMSwxXSsgdGFiW2ksMV07ICAgICAgICAgICAKCWZvciBpOj0zIHRvIEEgIGRvCgkgICAgICAgICBmb3Igajo9MiB0byBpIGRvCgkgICAgICAgICAgICAgICAgRFBbaSxqXTo9bWF4KERQW2ktMSxqLTFdK3RhYltpLGpdLERQW2ktMSxqXSt0YWJbaSxqXSk7CglhbnM6PTA7Cglmb3IgaTo9MSB0byBBIGRvIGlmIERQW0EsaV0+YW5zIHRoZW4gYW5zOj1EUFtBLGldIDsKCXdyaXRlbG4oYW5zKTsKZW5kLgo=