type mat= array [0..16,0..16] of longint;
procedure cit(var a: mat; m,n: integer);
var i,j: integer;
f: text;
begin
assign(f,'flip.in'); reset(f);
readln(f,m,n);
for i:= 1 to m do
for j:= 1 to n do
if (i=0) or (j=0) then a[i,j]:=0
else read(f,a[i,j]);
close(f);
for i:= 1 to m do a[i,0]:=0;
for i:= 1 to n do a[0,i]:=0;
end;
procedure tip(max: qword);
var f: text;
begin
assign(f,'flip.out'); rewrite(f);
writeln(f,max);
close(f);
end;
function sum(a: mat; n,m: integer; s1: string): qword;
var i,j: integer;
s: qword;
begin
s:=0;
for i:= 1 to m do
for j:= 1 to n do
if (s1[i]='1') xor (s1[m+j]='1') then s:=s-a[i,j]
else s:=s+a[i,j];
sum:=s;
end;
procedure back(var max: qword; var q: qword; var p,n,m: integer; var s1: string; a: mat);
var i: integer;
begin
if p=0 then begin
q:= sum(a,n,m,s1);
if q>max then max:=q;
end
else for i:= 1 to 2 do
if i=1 then begin s1:=s1+'0'; dec(p); back(max,q,p,n,m,s1,a); delete(s1,length(s1),1); end
else begin s1:=s1+'1'; dec(p); back(max,q,p,n,m,s1,a); delete(s1,length(s1),1); end;
end;
procedure rezolv;
var a: mat;
m,n,p: integer;
q,max: qword;
s1: string;
begin
cit(a,n,m);
p:=m+n;
s1:='';
back(max,q,p,n,m,s1,a);
tip(max);
end;
begin{pp}
rezolv;
end.