{$A+,B-,D+,E+,F-,G-,I+,L+,N-,O-,P-,Q-,R-,S+,T-,V+,X+,Y+}
{$M 16384,0,655360}
type stiva=array [1..16] of byte;
var st:stiva;
a:array [1..16,1..16] of longint;
n,m:byte;
max,s:longint;
f,g:text;
procedure citire;
var i,j:byte;
begin
assign(f,'flip.in');
reset(f);
readln(f,n,m);
for i:=1 to n do
for j:=1 to m do
begin
read(f,a[i,j]);
s:=s+a[i,j];
end;
close(f);
end;
procedure prg(st:stiva;k:byte);
var i,j:byte;
ss,suma:longint;
begin
suma:=s;
for i:=1 to k do
for j:=1 to m do
begin
suma:=suma+(a[i,j]*-1)-a[i,j];
a[i,j]:=a[i,j]*-1;
end;
for j:=1 to m do
begin
ss:=0;
for i:=1 to n do
ss:=ss+a[i,j];
if ss<0 then
for i:=1 to n do
suma:=suma+a[i,j]*-1-a[i,j];
end;
if suma>max then
max:=suma;
for i:=1 to k do
for j:=1 to m do
a[i,j]:=a[i,j]*-1;
end;
function valid(k,c:byte):boolean;
var i:byte;
begin
valid:=true;
for i:=1 to k-1 do
if st[i]=c then
valid:=false;
end;
procedure back(k:byte);
var i:byte;
begin
if k>1 then
prg(st,k-1);
for i:=1 to n do
if valid(k,i) then
begin
st[k]:=i;
back(k+1);
end;
end;
begin
s:=0;
citire;
max:=-maxint;
back(1);
assign(g,'flip.out');
rewrite(g);
write(g,max);
close(g);
end.