#include <stdio.h>
#include <math.h>
#include <string.h>
#define IN "flip.in"
#define OUT "flip.out"
#define N 20
int Tabla[N][N], Aux[N][N] /* , Linii[N], Coloane[N] */;
int puteri[N] = {1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65356, 0, 0, 0};
int n, m, s_max;
int suma(void);
//void aduna_unu(int [], int);
void comuta(int, int);
int main(void) {
int i, j, c, l, m_p, n_p;
freopen(IN, "r", stdin); freopen(OUT, "w", stdout);
scanf("%d %d", &n, &m);
for(i = 1; i <= n; ++i)
for(j = 1; j <= m; ++j) {
scanf("%d", &Tabla[i][j]);
Aux[i][j] = Tabla[i][j];
}
s_max = suma();
n_p = puteri[n];
m_p = puteri[m];
for(l = 0; l < n_p; ++l) {
//memset(Coloane, 0, sizeof(Coloane));
for(c = 0; c < m_p; ++c) {
memcpy(Tabla, Aux, sizeof(Tabla));
comuta(l, c);
if(suma() > s_max)
s_max = suma();
//aduna_unu(Coloane, m);
}
//aduna_unu(Linii, n);
}
printf("%d\n", s_max);
return 0;
}
int suma(void) {
int i, j, s = 0;
for(i = 1; i <= n; ++i)
for(j = 1; j <= m; ++j)
s += Tabla[i][j];
return s;
}
/* void aduna_unu(int v[], int l) {
int i = l;
while(v[i] == 1 && i) {
v[i] = 0;
i--;
}
v[i] = 1;
} */
void comuta(int l, int c) {
int i, j;
for(i = 0; i < n; ++i) {
for(j = 0; j < m; ++j)
if(((1 << i & l) != 0 && (1 << j & c) == 0) || ((1 << j & c) != 0 && (1 << i & l) == 0))
Tabla[i + 1][j + 1] = -Tabla[i + 1][j + 1];
}
}