#include <stdio.h>
#include <stdlib.h>
#define MAX(a,b) (((a)>(b))?(a):(b))
int suma_mat(int st[], int mat[], int m, int n)
{
int suma_col = 0, suma = 0;
for(int j = 0; j < n; ++j)
{
suma_col = 0;
for(int i = 0; i < m; ++i)
{
suma_col += mat[i * n + j] * st[i];
}
suma += abs(suma_col);
}
return suma;
}
void backtrack(int st[], int nivel, int mat[], int m, int n, int* suma_max)
{
if(nivel == m)
{
*suma_max = MAX(*suma_max, suma_mat(st, mat, m, n));
return;
}
else
{
st[nivel] = 1;
backtrack(st, nivel + 1, mat, m, n, suma_max);
st[nivel] = -1;
backtrack(st, nivel + 1, mat, m, n, suma_max);
}
}
int main()
{
FILE* input = fopen("flip.in", "r");
FILE* output = fopen("flip.out", "w");
int m = 0, n = 0;
fscanf(input, "%d %d", &m, &n);
int mat[m * n];
int st[m];
for(int i = 0; i < m; ++i)
{
for(int j = 0; j < n; ++j)
{
fscanf(input, "%d", &mat[i * n + j]);
}
}
int suma_max = 0;
backtrack(st, 0, mat, m, n, &suma_max);
fprintf(output, "%i", suma_max);
fclose(input);
fclose(output);
return 0;
}