#include<bits/stdc++.h>
using namespace std;
#define int __int128
int dp[85][85],n,_,a[85],p[85];
int read(){
int ret=0;
char c=getchar();
while(c>='0'&&c<='9'){ret=(ret<<3)+(ret<<1)+c-'0',c=getchar();}
return ret;
}
void write(int x){
if(x)write(x/10),putchar(char(x%10+'0'));
return;
}
signed main(){
_=read();n=read();
p[0]=1;
for(int i=1;i<=85;i++)p[i]=p[i-1]<<1;
int ans=0;
while(_--){
for(int i=1;i<=n;i++)a[i]=read(),dp[i][i]=a[i]*p[n];
for(int i=2;i<=n;i++){
for(int j=1;j+i-1<=n;j++){
int l=j,r=j+i-1;
dp[l][r]=dp[l+1][r]+a[l]*p[n-i+1];
dp[l][r]=max(dp[l][r],dp[l][r-1]+a[r]*p[n-i+1]);
}
}
ans=ans+dp[1][n];
}
if(ans==0)cout<<0;
else write(ans);
return 0;
}
数据: in: 5 5 0 0 0 0 0 0 0 0 0 1 876 1 566 920 598 259 945 123 659 997 176 478 293 464 278 out: 118214