#include <bits/stdc++.h>
using namespace std;
const int MAX = 83;
int n, m;
__int128 a[MAX];
__int128 dp[MAX][MAX];
__int128 p[MAX];
__int128 sum = 0;
inline int read() {
int s = 0, w = 1;
char ch = getchar();
while (ch < '0' || ch > '9') {
if (ch == '-') {
w = -1;
ch = getchar();
}
}
while (ch >= '0' && ch <= '9') {
s = (s << 3) + (s << 1) + ch - '0';
ch = getchar();
}
return s * w;
}
void print(__int128 x) {
if (x > 9)
print(x / 10);
putchar(x % 10 + '0');
}
void solve() {
n = read();
m = read();
p[0] = 1;
for (int i = 1; i <= m; i++)
p[i] = 2 * p[i - 1];
for (int i = 1; i <= n; i ++) {
for (int j = 1; j <= m ; j++)
a[j] = read();
memset(dp, 0, sizeof(dp));
for (int i = 1; i <= m; i++) {
dp[i][i] = a[i] * p[m];
}
for (int len = 1; len <= m - 1; len ++) {
for (int i = 1; i <= m - len; i++) {
dp[i][i + len] = max(a[i] * p[m - len] + dp[i + 1][i + len], dp[i][i + len - 1] + a[i + len] * p[m - len]);
}
}
sum += dp[1][m];
}
if (sum == 0)
putchar('0');
else
print(sum);
}
signed main() {
solve();
return 0;
}