#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
int n, m;
cin >> n >> m;
vector<vector<int>> a(n, vector<int>(m));
for(int i = 0; i < n; i++)
for(int j = 0; j < m; j++)
cin >> a[i][j];
long long ans = LLONG_MIN;
// chọn hàng trên x
for(int x = 0; x < n; x++){
vector<int> colSum(m, 0); // V[i]
// chọn hàng dưới u
for(int u = x + 1; u < n; u++){
// cập nhật V[i] += a[u-1][i]
for(int c = 0; c < m; c++)
colSum[c] += (u - x > 1 ? a[u-1][c] : 0);
// tạo H[i]
vector<long long> H(m);
for(int c = 0; c < m; c++)
H[c] = a[x][c] + a[u][c];
// prefix sum của H
vector<long long> pref(m+1, 0);
for(int c = 0; c < m; c++)
pref[c+1] = pref[c] + H[c];
long long bestLeft = LLONG_MIN;
// quét cột v (phải)
for(int v = 1; v < m; v++){
// cập nhật best y
long long yValue = colSum[v-1] + H[v-1] - pref[v-1];
bestLeft = max(bestLeft, yValue);
long long curr = bestLeft + colSum[v] + H[v] + pref[v];
ans = max(ans, curr);
}
}
}
cout << ans;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKICAgIGlvczo6c3luY193aXRoX3N0ZGlvKDApOwogICAgY2luLnRpZSgwKTsKCiAgICBpbnQgbiwgbTsKICAgIGNpbiA+PiBuID4+IG07CiAgICB2ZWN0b3I8dmVjdG9yPGludD4+IGEobiwgdmVjdG9yPGludD4obSkpOwogICAgZm9yKGludCBpID0gMDsgaSA8IG47IGkrKykKICAgICAgICBmb3IoaW50IGogPSAwOyBqIDwgbTsgaisrKQogICAgICAgICAgICBjaW4gPj4gYVtpXVtqXTsKCiAgICBsb25nIGxvbmcgYW5zID0gTExPTkdfTUlOOwoKICAgIC8vIGNo4buNbiBow6BuZyB0csOqbiB4CiAgICBmb3IoaW50IHggPSAwOyB4IDwgbjsgeCsrKXsKICAgICAgICB2ZWN0b3I8aW50PiBjb2xTdW0obSwgMCk7ICAvLyBWW2ldCgogICAgICAgIC8vIGNo4buNbiBow6BuZyBkxrDhu5tpIHUKICAgICAgICBmb3IoaW50IHUgPSB4ICsgMTsgdSA8IG47IHUrKyl7CiAgICAgICAgICAgIC8vIGPhuq1wIG5o4bqtdCBWW2ldICs9IGFbdS0xXVtpXQogICAgICAgICAgICBmb3IoaW50IGMgPSAwOyBjIDwgbTsgYysrKQogICAgICAgICAgICAgICAgY29sU3VtW2NdICs9ICh1IC0geCA+IDEgPyBhW3UtMV1bY10gOiAwKTsKCiAgICAgICAgICAgIC8vIHThuqFvIEhbaV0KICAgICAgICAgICAgdmVjdG9yPGxvbmcgbG9uZz4gSChtKTsKICAgICAgICAgICAgZm9yKGludCBjID0gMDsgYyA8IG07IGMrKykKICAgICAgICAgICAgICAgIEhbY10gPSBhW3hdW2NdICsgYVt1XVtjXTsKCiAgICAgICAgICAgIC8vIHByZWZpeCBzdW0gY+G7p2EgSAogICAgICAgICAgICB2ZWN0b3I8bG9uZyBsb25nPiBwcmVmKG0rMSwgMCk7CiAgICAgICAgICAgIGZvcihpbnQgYyA9IDA7IGMgPCBtOyBjKyspCiAgICAgICAgICAgICAgICBwcmVmW2MrMV0gPSBwcmVmW2NdICsgSFtjXTsKCiAgICAgICAgICAgIGxvbmcgbG9uZyBiZXN0TGVmdCA9IExMT05HX01JTjsKCiAgICAgICAgICAgIC8vIHF1w6l0IGPhu5l0IHYgKHBo4bqjaSkKICAgICAgICAgICAgZm9yKGludCB2ID0gMTsgdiA8IG07IHYrKyl7CiAgICAgICAgICAgICAgICAvLyBj4bqtcCBuaOG6rXQgYmVzdCB5CiAgICAgICAgICAgICAgICBsb25nIGxvbmcgeVZhbHVlID0gY29sU3VtW3YtMV0gKyBIW3YtMV0gLSBwcmVmW3YtMV07CiAgICAgICAgICAgICAgICBiZXN0TGVmdCA9IG1heChiZXN0TGVmdCwgeVZhbHVlKTsKCiAgICAgICAgICAgICAgICBsb25nIGxvbmcgY3VyciA9IGJlc3RMZWZ0ICsgY29sU3VtW3ZdICsgSFt2XSArIHByZWZbdl07CiAgICAgICAgICAgICAgICBhbnMgPSBtYXgoYW5zLCBjdXJyKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBjb3V0IDw8IGFuczsKfQo=