var
f:array[0..100,0..100]of integer;
flower:array[1..100,1..100]of integer;
b:array[1..100,1..100]of integer;
fl,v,i,j,k,max,themax:integer;
procedure printf(i,j:integer);
begin
if i=1 then
exit
else
begin
printf(i-1,b[i,j]);
write(b[i,j],' ')
end
end;
begin
fillchar(b,sizeof(b),0);
fillchar(f,sizeof(f),0);
fillchar(flower,sizeof(flower),0);
readln(fl,v);
for i:=1 to v do
b[1,i]:=i;
for i:=1 to fl do
begin
for j:=1 to v do
read(flower[i,j]);
readln
end;
k:=v-fl;
for i:=1 to fl do
for j:=i to k+i do
if (f[i,j-1]-flower[i,j-1])>(f[i-1,j-1]) then
begin
f[i,j]:=f[i,j-1]-flower[i,j-1]+flower[i,j];
b[i,j]:=b[i,j-1]
end
else
begin
f[i,j]:=f[i-1,j-1]+flower[i,j];
b[i,j]:=j-1
end;
max:=0;
for j:=fl to v do
if f[fl,j]>max then
begin
max:=f[fl,j];
themax:=j
end;
writeln(max);
printf(fl,themax);
write(themax);
end.