#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void flip (int **mat, int m, int n, int i, int j) {
for (int k = 0; k < m; k++) {
mat[k][j] *= -1;
}
for (int k = 0; k < j; k++) {
mat[i][k] *= -1;
}
for (int k = j + 1; k < n; k++) {
mat[i][k] *= -1;
}
}
void print (int **mat, int m, int n) {
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
printf("%d ", mat[i][j]);
}
printf("\n");
}
}
void sums (int **mat, int m, int n) {
for (int i = 0; i < m; i++) {
int s = 0;
for (int j = 0; j < n; j++) {
s += mat[i][j];
}
mat[i][n] = s;
}
for (int j = 0; j < n; j++) {
int s = 0;
for (int k = 0; k < m; k++) {
s += mat[k][j];
}
mat[m][j] = s;
}
}
int sum (int **mat, int m, int n) {
int s = 0;
for (int i = 0; i < m; i++) {
s += mat[i][n];
}
return s;
}
void optimize (int **mat, int **buffer, int m, int n) {
sums(mat, m, n);
int s = sum(mat, m, n);
for (int i = 0; i < m+1; i++) {
memcpy(buffer[i], mat[i], (n+1) * sizeof(int));
}
// print(buffer, m+1, n+1);
// printf("\n");
int minrow = 0;
int mincol = 0;
for (int i = 1; i < m; i++) {
if (mat[i][n] < mat[minrow][n]) {
minrow = i;
}
}
for (int j = 1; j < n; j++) {
if (mat[m][j] < mat[m][mincol]) {
mincol = j;
}
}
flip (mat, m, n, minrow, mincol);
sums(mat, m, n);
int sn = sum(mat, m, n);
if (sn > s) {
optimize(mat, buffer, m, n);
} else {
for (int k = 0; k < m+1; k++) {
memcpy(mat[k], buffer[k], (n+1) * sizeof(int));
}
}
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
flip(mat, m, n, i, j);
sums(mat, m, n);
sn = sum(mat, m, n);
if (sn > s) {
optimize(mat, buffer, m, n);
} else {
for (int k = 0; k < m+1; k++) {
memcpy(mat[k], buffer[k], (n+1) * sizeof(int));
}
}
}
}
}
int main (void) {
FILE *in = fopen("flip.in", "r");
FILE *out = fopen("flip.out", "w");
int m, n;
fscanf(in, "%d %d", &m, &n);
int **mat = new int * [m+1];
for (int i = 0; i < m + 1; i++) {
mat[i] = new int[n+1];
}
int **buffer = new int * [m+1];
for (int i = 0; i < m + 1; i++) {
buffer[i] = new int[n+1];
}
for (int i = 0; i < m; i++) {
for (int j = 0; j < n - 1; j++) {
fscanf(in, "%d ", &mat[i][j]);
}
fscanf(in, "%d\n", &mat[i][n-1]);
}
optimize(mat, buffer, m, n);
int s = sum(mat, m, n);
fprintf(out, "%d", s);
fclose(in);
fclose(out);
for (int i = 0; i < m + 1; i++) {
delete []mat[i];
}
delete []mat;
return 0;
}