#include<stdio.h>
int cmp(void const *a,void const *b)
{
return *(int*)a-*(int*)b;
}
int main()
{
int a,b;
while(1)
{
scanf("%d%d",&a,&b);
if(a==0||b==0)
return 0;
int s[a][b],B[a][b],k,i,j,q,l=-1;
k=a+b;
int sum[k];
for(i=0; i<a; i++)
{
for(j=0; j<b; j++)
{
scanf("%d",&s[i][j]);
B[j][i]=s[i][j];
}//行列翻转
}
for(i=0; i<a; i++)
{
q=0;
for(j=0; j<b; j++)
{
q+=s[i][j];
}
l++;
sum[l]=q;
}
for(i=0; i<a; i++)
{
q=0;
for(j=0; j<b; j++)
{
q+=B[i][j];
}
l++;
sum[l]=q;//列求和
}
qsort(sum,k,sizeof(sum[0]),cmp);//排序
printf("%d\n",sum[k-1]-sum[0]);
}
return 0;
}
int cmp(void const *a,void const *b)
{
return *(int*)a-*(int*)b;
}
int main()
{
int a,b;
while(1)
{
scanf("%d%d",&a,&b);
if(a==0||b==0)
return 0;
int s[a][b],B[a][b],k,i,j,q,l=-1;
k=a+b;
int sum[k];
for(i=0; i<a; i++)
{
for(j=0; j<b; j++)
{
scanf("%d",&s[i][j]);
B[j][i]=s[i][j];
}//行列翻转
}
for(i=0; i<a; i++)
{
q=0;
for(j=0; j<b; j++)
{
q+=s[i][j];
}
l++;
sum[l]=q;
}
for(i=0; i<a; i++)
{
q=0;
for(j=0; j<b; j++)
{
q+=B[i][j];
}
l++;
sum[l]=q;//列求和
}
qsort(sum,k,sizeof(sum[0]),cmp);//排序
printf("%d\n",sum[k-1]-sum[0]);
}
return 0;
}