#include <stdio.h>
#include <stdlib.h>
int max (int a, int b)
{
if (a > b)
return a;
else
return b;
}
void calcul(int *maxim,int n, int m,int *s,int **a)
{
int i,j;
int suma = 0;
for (j = 1; j <= m; j++)
{
int sumc = 0;
for (i = 1; i <= n; i++)
sumc += a[i][j] * s[i];
sumc = abs(sumc);
suma += sumc;
*maxim = max(*maxim, suma);
}
}
void BackTracking(int position,int n,int m,int *maxim,int *s,int **a)
{
if(position == n+1)
calcul(maxim,n,m,s,a);
else
{
s[position] = 1;
BackTracking(position + 1,n,m,maxim,s,a);
s[position] = -1;
BackTracking(position + 1,n,m,maxim,s,a);
}
}
int main()
{
int **a;
int n,m;
int i,j;
FILE *f;
f = fopen("flip.in","r");
fscanf(f,"%d%d\n",&n,&m);
a = (int **)malloc((n+1)*sizeof(int *));
for(i=1;i<=n;i++)
a[i] = (int *)malloc((m+1)*sizeof(int));
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
{
fscanf(f,"%d",&a[i][j]);
}
}
int *maxim = (int *)calloc(1,sizeof(int));
int *s = (int *)calloc(2000,sizeof(int));
BackTracking(1,n,m,maxim,s,a);
fclose(f);
f=fopen("flip.out","w");
fprintf(f,"%d\n",*maxim);
return 0;
}