#include <bits/stdc++.h>
using namespace std;
#define Task "MATRIX"
#define N 2003
#define ll long long
#define INF 1000000000
#define MOD 1000000007
int a[N][N], maxPre[N][N], maxSuf[N][N], dp[N][N];
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
int m, n;
cin >> m >> n;
for (int i = 1; i <= m; i++)
for (int j = 1; j <= n; j++) cin >> a[i][j];
for (int i = 1; i <= m; i++) {
int sum = 0, mi = 0;
for (int j = 1; j <= n; j++) {
sum += a[i][j];
maxPre[i][j] = max(0, sum - mi);
mi = min(mi, sum);
}
}
for (int i = 1; i <= m; i++) {
int sum = 0, mi = 0;
for (int j = n; j >= 1; j--) {
sum += a[i][j];
maxSuf[i][j] = max(0, sum - mi);
mi = min(mi, sum);
}
}
int sum = 0;
for (int i = 1; i <= m; i++) {
for (int j = 1; j <= n; j++) {
if (i == 1) {
dp[i][j] = sum + a[i][j] + maxSuf[i][j + 1];
sum += a[i][j];
continue;
}
dp[i][j] = dp[i - 1][j] + a[i][j] + maxPre[i][j - 1] + maxSuf[i][j + 1];
sum = a[i][j];
for (int k = j - 1; k >= 1; k--) {
sum += a[i][k];
dp[i][j] = max(
dp[i][j],
dp[i - 1][k] + sum + maxPre[i][k - 1] + maxSuf[i][j + 1]
);
}
sum = a[i][j];
for (int k = j + 1; k <= n; k++) {
sum += a[i][k];
dp[i][j] = max(
dp[i][j],
dp[i - 1][k] + sum + maxSuf[i][k + 1] + maxPre[i][j - 1]
);
}
if (i == m) ans = max(ans, dp[i][j]);
}
}
cout << dp[m][n];
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojZGVmaW5lIFRhc2sgIk1BVFJJWCIKI2RlZmluZSBOIDIwMDMKI2RlZmluZSBsbCBsb25nIGxvbmcKI2RlZmluZSBJTkYgMTAwMDAwMDAwMAojZGVmaW5lIE1PRCAxMDAwMDAwMDA3CgppbnQgYVtOXVtOXSwgbWF4UHJlW05dW05dLCBtYXhTdWZbTl1bTl0sIGRwW05dW05dOwoKaW50IG1haW4oKSB7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOwogICAgY2luLnRpZSgwKTsgY291dC50aWUoMCk7CiAgICBpbnQgbSwgbjsKICAgIGNpbiA+PiBtID4+IG47CiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBtOyBpKyspCiAgICAgICAgZm9yIChpbnQgaiA9IDE7IGogPD0gbjsgaisrKSBjaW4gPj4gYVtpXVtqXTsKCiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBtOyBpKyspIHsKICAgICAgICBpbnQgc3VtID0gMCwgbWkgPSAwOwogICAgICAgIGZvciAoaW50IGogPSAxOyBqIDw9IG47IGorKykgewogICAgICAgICAgICBzdW0gKz0gYVtpXVtqXTsKICAgICAgICAgICAgbWF4UHJlW2ldW2pdID0gbWF4KDAsIHN1bSAtIG1pKTsKICAgICAgICAgICAgbWkgPSBtaW4obWksIHN1bSk7CiAgICAgICAgfQogICAgfQogICAgCiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBtOyBpKyspIHsKICAgICAgICBpbnQgc3VtID0gMCwgbWkgPSAwOwogICAgICAgIGZvciAoaW50IGogPSBuOyBqID49IDE7IGotLSkgewogICAgICAgICAgICBzdW0gKz0gYVtpXVtqXTsKICAgICAgICAgICAgbWF4U3VmW2ldW2pdID0gbWF4KDAsIHN1bSAtIG1pKTsKICAgICAgICAgICAgbWkgPSBtaW4obWksIHN1bSk7CiAgICAgICAgfQogICAgfQogICAgCiAgICBpbnQgc3VtID0gMDsKICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG07IGkrKykgewogICAgICAgIGZvciAoaW50IGogPSAxOyBqIDw9IG47IGorKykgewogICAgICAgICAgICBpZiAoaSA9PSAxKSB7CiAgICAgICAgICAgICAgICBkcFtpXVtqXSA9IHN1bSArIGFbaV1bal0gKyBtYXhTdWZbaV1baiArIDFdOwogICAgICAgICAgICAgICAgc3VtICs9IGFbaV1bal07CiAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgfQogICAgICAgICAgICBkcFtpXVtqXSA9IGRwW2kgLSAxXVtqXSArIGFbaV1bal0gKyBtYXhQcmVbaV1baiAtIDFdICsgbWF4U3VmW2ldW2ogKyAxXTsKICAgICAgICAgICAgc3VtID0gYVtpXVtqXTsKICAgICAgICAgICAgZm9yIChpbnQgayA9IGogLSAxOyBrID49IDE7IGstLSkgewogICAgICAgICAgICAgICAgc3VtICs9IGFbaV1ba107CiAgICAgICAgICAgICAgICBkcFtpXVtqXSA9IG1heCgKICAgICAgICAgICAgICAgICAgICBkcFtpXVtqXSwKICAgICAgICAgICAgICAgICAgICBkcFtpIC0gMV1ba10gKyBzdW0gKyBtYXhQcmVbaV1bayAtIDFdICsgbWF4U3VmW2ldW2ogKyAxXQogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBzdW0gPSBhW2ldW2pdOwogICAgICAgICAgICBmb3IgKGludCBrID0gaiArIDE7IGsgPD0gbjsgaysrKSB7CiAgICAgICAgICAgICAgICBzdW0gKz0gYVtpXVtrXTsKICAgICAgICAgICAgICAgIGRwW2ldW2pdID0gbWF4KAogICAgICAgICAgICAgICAgICAgIGRwW2ldW2pdLAogICAgICAgICAgICAgICAgICAgIGRwW2kgLSAxXVtrXSArIHN1bSArIG1heFN1ZltpXVtrICsgMV0gKyBtYXhQcmVbaV1baiAtIDFdCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgCWlmIChpID09IG0pIGFucyA9IG1heChhbnMsIGRwW2ldW2pdKTsKICAgICAgICB9CiAgICB9CiAgICBjb3V0IDw8IGRwW21dW25dOwogICAgcmV0dXJuIDA7Cn0K