var s:array[0..101,0..101]of longint;
f:array[0..101]of longint;
n,i,j,k,t,max,oo:longint;
begin
max:=-1000000;
readln(n);
for i:=1 to n do
for j:=1 to n do
begin
read(oo);
s[i,j]:=s[i-1,j]+s[i,j-1]-s[i-1,j-1]+oo;
end;
for k:=1 to n do
for i:=1 to n-k+1 do
begin
t:=0;
for j:=1 to n do
begin
f[j]:=f[j-1]+s[i+k-1,j]-s[i+k-1,j-1]-s[i-1,j]+s[i-1,j-1];
if f[j]-f[t]>max then max:=f[j]-f[t];
if f[j]-f[t]<=0 then t:=j;
end;
end;
if max<0 then max:=0;
writeln(max);
end.
program p106;
var i,j,k,n,max,now:longint;
e:array[0..100,0..100]of longint;
begin
readln(n);
for i:=1 to n do
for j:=1 to n do
begin
read(k);
e[i,j]:=e[i-1,j] + e[i,j-1] - e[i-1,j-1]+k;
end;
max:=-100000;
for k:=1 to n do
begin
now:=0;
for i:=1 to n-k+1 do
for j:=1 to n do
begin
inc(now,e[i+k-1,j]-e[i+k-1,j-1]-e[i-1,j]+e[i-1,j-1]);
if now>max then max:=now;
if now<=0 then
now:=0;
end;
end;
if max<0 then writeln(0)
else writeln(max);
end.