#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(void);
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 = 1; l <= n_p; ++l) {
memset(Coloane, 0, sizeof(Coloane));
for(c = 1; c <= m_p; ++c) {
memcpy(Tabla, Aux, sizeof(Tabla));
comuta();
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(void) {
int i, j;
for(i = 1; i <= n; ++i) {
for(j = 1; j <= m; ++j)
if(Linii[i] + Coloane[j] == 1)
Tabla[i][j] = -Tabla[i][j];
}
}