#include<bits/stdc++.h>
#define lolo long long
#define I128 __int128
using namespace std;
const I128 maxn=101;
I128 a[maxn][maxn],dp[maxn][maxn];
I128 n,m,ans;
I128 read(){
I128 x=0,f=1;
char ch=getchar();
while(ch<'0'||ch>'9')
if(ch=='-') f=-1,ch=getchar();
while(ch>='0'&&ch<='9')
x=x*10+ch-'0',ch=getchar();
return x*f;
}
void write(I128 x){
if(x<0){
putchar('-');
x=-x;
}
if(x>9) write(x/10);
putchar(x%10+'0');
}
I128 calc(I128 base,I128 x){
I128 res=1;
while(x>0){
if(x&1) res=base*res;
x=x>>1;
base=base*base;
}
return res;
}
int main(){
n=read(),m=read();
for(I128 i=1;i<=n;++i){
for(I128 j=1;j<=m;++j){
a[i][j]=read();
}
}
for(I128 i=1;i<=n;++i){
for(I128 ii=0;ii<=m;++ii){
for(I128 jj=0;jj<=m;++jj){
dp[ii][jj]=0;
}
}
for(I128 len=1;len<=m;++len){
for(I128 l=1,r=len;r<=m;++l,++r){
dp[l][r]=max(dp[l+1][r]+a[i][l]*calc(2,m-len+1),dp[l][r-1]+a[i][r]*calc(2,m-len+1));
}
}
ans+=dp[1][m];
}
write(ans);
}