#include<stdio.h>
//#include<conio.h>
#include<stdlib.h>
int suma(int *v, int N, int M){
int i,j,sum;
sum = 0;
for(i=0;i<N;i++)
for(j=0;j<M;j++){
sum = sum + v[i*M+j];
//printf("%d ", v[i*M+j]);
}
return sum;
}
int flip(int *v, int r, int c, int N, int M){
v[r*M+c] = v[r*M+c]*-1;
return 0;
}
int flip_row(int *v, int r, int N, int M){
int i;
for(i=0;i<M;i++)
flip(v,r,i,N,M);
return 0;
}
int flip_col(int *v, int c, int N, int M){
int i;
for(i=0;i<N;i++)
flip(v,i,c,N,M);
return 0;
}
int main(){
int i,j,M,N;
FILE *in,*out;
in = fopen("flip.in","r");
out = fopen("flip.out","w+");
fscanf(in, "%d %d\n", &N, &M);
int board[N][M];
// int fakeboard[N][M];
// int *pboard = (int*) malloc(M*N);
// if(!pboard) return 1;
for(i=0;i<N;i++){
for(j=0;j<M;j++){
fscanf(in, "%d ", &board[i][j]);
// printf("%d ", board[i][j]);
}
fscanf(in,"\n");
}
int *pboard = &board[0][0];
int all = 1, row, col, temp;
all<<=(M+N);
// printf("%d\n", suma(pboard,N,M));
// row*M+col
int sums[all];
for (i=0;i<all;i++){
sums[i]=0;
temp = i;
for (row=0;row<N;row++){
if (temp%2 == 1)
flip_row(pboard, row, N, M);
temp/=2;
}
for (col = 0;col<M;col++){
if (temp%2 == 1)
flip_col(pboard, col, N, M);
temp/=2;
}
sums[i] = suma(pboard, N, M);
temp = i;
for (row=0;row<N;row++){
if (temp%2 == 1)
flip_row(pboard, row, N, M);
temp/=2;
}
for (col = 0;col<M;col++){
if (temp%2 == 1)
flip_col(pboard, col, N, M);
temp/=2;
}
// getrc(i);
}
// flip_col(pboard,1,N,M);
// for(i=0;i<N;i++){
// for(j=0;j<M;j++){
// printf("%d ", board[i][j]);
// }
// printf("\n");
// }
int max = 0;
for (i=0;i<all;i++)
if (sums[i]>max)
max = sums[i];
fprintf(out,"%d", max);
fclose(in);
fclose(out);
// free(pboard);
// getch();
return 0;
}