#include <bits/stdc++.h>
using namespace std;
#define __int28 int
int map2[80][80];
int f[80][80];
int n,m,ans=0;
inline __int28 read(){
char c=getchar();int x=0,f=1;
while (c<'0'||c>57){
if (c=='-'){
f=-1;
}
c=getchar();
}
while (c>='0'&&c<='9'){
x=x*10+c-48;
c=getchar();
}
return x*f;
}
void write(__int28 x){
if (x<0){
putchar('-');
x=-x;
}
if (x>10){
write(x/10);
}
putchar(x%10+'0');
}
int main(){
n=read();m=read();
for (register int i=0;i<n;i++){
for (register int j=0;j<m;j++){
map2[i][j]=read();
}
}
for (register int i=0;i<n;i++){
memset(f,0,sizeof(f));
for (register int q=0;q<m;q++){
for (register int j=0;j+q<m;j++){
f[j][j+q]=max(2*map2[i][j]+2*f[j+1][j+q],2*map2[i][j+q]+2*f[j][j+q-1]);
}
}
ans+=f[0][m-1];
}
write(ans);
return 0;
}
有神马问题|||