var
n,i,j:longint;
w:array[0..1000,0..1000] of int64;
k:array[0..1000,0..1000]of int64;
function max(a,b:longint):longint;
beginif a>b then exit(a);if a<b then exit(b);end;
begin
readln(n);fillchar(w,sizeof(w),0);
for i:=1 to n do begin
for j:=1 to i do read(k[i,j]);
readln;
end;
for i:= 1 to n do for j:=1 to i do
w[i,j]:=max(w[i,j]+k[i+1,j],w[i,j]);
writeln(w[n,n]);
end.
n,i,j:longint;
w:array[0..1000,0..1000] of int64;
k:array[0..1000,0..1000]of int64;
function max(a,b:longint):longint;
beginif a>b then exit(a);if a<b then exit(b);end;
begin
readln(n);fillchar(w,sizeof(w),0);
for i:=1 to n do begin
for j:=1 to i do read(k[i,j]);
readln;
end;
for i:= 1 to n do for j:=1 to i do
w[i,j]:=max(w[i,j]+k[i+1,j],w[i,j]);
writeln(w[n,n]);
end.