#include <iostream>
#include <fstream>
//Gigel a descoperit un nou joc pe care l-a numit "Flip". Acesta se joaca pe o tabla dreptunghiulara
//de dimensiuni N*M care contine numere intregi. Fiecare linie si fiecare coloana are un comutator care schimba starea
//tuturor elementelor de pe acea linie sau coloana, inmultindu-le cu -1. Scopul jocului este ca pentru o configuratie
//data a tablei de joc sa se actioneze asupra liniilor si coloanelor astfel incat sa se obtina o tabla cu suma elementelor
//cat mai mare.
using namespace std;
ifstream f("date.in");
ofstream g("date.out");
void citire(int &n,int &m,int x[100][100])
{
int i,j;
f>>n>>m;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
f>>x[i][j];
}
void afisare(int n,int m,int x[100][100])
{
int i,j;
for(i=1;i<=n;i++){
for(j=1;j<=m;j++)
g<<x[i][j]<<" ";
g<<endl;
}
}
int suma_linie(int n,int m,int x[100][100],int i)
{
int s=0;
for(int j=1;j<=m;j++)
s=s+x[i][j];
return s;
}
int suma_coloana(int n,int m,int x[100][100],int i)
{
int s=0;
for(int j=1;j<=n;j++)
s=s+x[j][i];
return s;
}
void semn_linie(int n,int m,int a[100][100],int i)
{
for(int j=1;j<=n;j++)
a[i][j]=a[i][j]*(-1);
}
void semn_coloana(int n,int m,int x[100][100],int i)
{
for(int j=1;j<=m;j++)
x[j][i]=x[j][i]*(-1);
}
int construire(int n,int m,int x[100][100])
{
int i,s=0;
for(i=1;i<n;i++)
if(suma_linie(n,m,x,i)<suma_linie(n,m,x,i)*(-1))
semn_linie(n,m,x,i);
for(i=1;i<=m;i++)
if(suma_coloana(n,m,x,i)<suma_coloana(n,m,x,i)*(-1)){
semn_coloana(n,m,x,i);
}
for(i=1;i<=n;i++)
for(int j=1;j<=m;j++)
s=s+x[i][j];
return s;
}
int main()
{
int n,m,x[100][100];
citire(n,m,x);
//afisare(n,m,x);
g<<construire(n,m,x);
f.close();
g.close();
return 0;
}