#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<cmath>
#define MAXN 2020
#define INF 99999999
using namespace std;
inline int read()
{
int x=0;
int f=1;
char ch=getchar();
while(ch>'9'||ch<'0'){
if(ch=='-'){
f=-f;
}
ch=getchar();
}
while(ch>='0'&&ch<='9'){
x=x*10+ch-'0';
ch=getchar();
}
return x*f;
}
int n;
int m;
int map[MAXN][MAXN];
int f[MAXN][MAXN];
int qm(int a,int b){
int ans=1;
int base=a;
while(b){
if(b&1){
ans*=base;
}
base*=base;
b>>=1;
}
return ans;
}
int dp(int l,int r,int x,int s){
if(f[l][r]) return f[l][r];
if(l>r) return 0;
f[l][r]=max(dp(l+1,r,x,s+1)+map[x][l]*qm(2,s),dp(l,r-1,x,s+1)+map[x][r]*qm(2,s));
return f[l][r];
}
int main()
{
n=read();
m=read();
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
map[i][j]=read();
}
}
int ans;
for(int i=1;i<=n;i++){
memset(f,0,sizeof(f));
ans+=dp(1,m,i,1);
}
cout<<ans;
return 0;
}