rt
#include<bits/stdc++.h>
using namespace std;
typedef __int128 ll;
inline int read()
{
int x=0;
char ch=getchar();
while(!isdigit(ch))ch=getchar();
while(isdigit(ch))x=(x<<3)+(x<<1)+(ch^48),ch=getchar();
return x;
}
void write(ll x)
{
if(x>9)write(x/10);
putchar(x%10+48);
}
int n,m,a[90];
ll f[90][90];
ll dp(int l,int r)
{
if(f[l][r]!=-1)return f[l][r];
if(l==r)return f[l][r]=a[l]*(1<<m);
f[l][r]=max(dp(l+1,r)+a[l]*(1<<(m-(r-l))),dp(l,r-1)+a[r]*(1<<(m-(r-l))));
return f[l][r];
}
int main()
{
n=read(); m=read();
ll ans=0;
while(n--)
{
memset(f,-1,sizeof(f));
for(int i=1;i<=m;++i)cin>>a[i];
ans+=dp(1,m);
}
if(!ans)puts("0");
else write(ans);
return 0;
}