#include <fstream.h>
long n,m,mat[50][50];
void citire (long &n,long &m)
{
std::ifstream f ("flip.in");
f>>n>>m;
for (int i=0;i<n;i++)
for (int j=0;j<m;j++)
f>>mat[i][j];
f.close();
}
int suma (long n,long m,long p[50][50])
{
long s=0;
for (int i=0;i<n;i++)
for (int j=0;j<m;j++)
s+=p[i][j];
return s;
}
int sL (long m,long r,long p[50][50])
{
long s=0;
for (int i=0;i<m;i++)
s+=p[r][i];
return s;
}
int sC (long n,long r,long p[50][50])
{
long s=0;
for (int i=0;i<n;i++)
s+=p[i][r];
return s;
}
void intoarceL (long m,long j,long p[50][50])
{
int k;
for (k=0;k<m;k++)
p[j][k]*=-1;
}
void intoarceC (long n,long i,long p[50][50])
{
int k;
for (k=0;k<n;k++)
p[k][i]*=-1;
}
int flip ()
{
long p[50][50];
long s=0,i,j,h,smax=0;
for (i=0;i<m;i++)
{
for (int u=0;u<n;u++)
for (int y=0;y<m;y++)
p[u][y]=mat[u][y];
if (i==0)
s=suma(n,m,p);
else
s=smax;
for (h=0;h<n;h++)
p[h][m]=0;
intoarceC (n,i,p);
for (j=0;j<n;j++)
if (sL(m,j,p)<0)
{
intoarceL(m,j,p);
p[j][m]=1;
}
if (suma(n,m,p)>s)
{
smax=suma(n,m,p);
}
/* else
{
for (h=0;h<n;h++)
if (p[h][m]==1)
intoarceL(m,h,p);
intoarceC (n,i,p);
}
*/
}
for (i=0;i<n;i++)
{
for (int u=0;u<n;u++)
for (int y=0;y<m;y++)
p[u][y]=mat[u][y];
if (i==0)
s=suma(n,m,p);
else
s=smax;
for (h=0;h<m;h++)
p[n][h]=0;
intoarceL (n,i,p);
for (j=0;j<m;j++)
if (sC(n,j,p)<0)
{
intoarceC(n,j,p);
p[n][j]=1;
}
if (suma(n,m,p)>s)
{
smax=suma(n,m,p);
}
/* else
{
for (h=0;h<n;h++)
if (p[n][h]==1)
intoarceC(n,h,p);
intoarceL (m,i,p);
}
*/
}
return s;
}
int main ()
{
citire(n,m);
std::ofstream g ("flip.out");
g<<flip();
g.close();
return 0;
}