#include <bits/stdc++.h>
using namespace std;
const int N = 55;
int a[N][N];
int b[N * 2][N][N];
int maxn;
int main() {
int n, m;
cin >> n >> m;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
cin >> a[i][j];
}
}
for (int c = 3; c < n + m; c++) {
for (int y1 = 1; y1 < c; y1++) {
for (int y2 = y1 + 1; y2 < c; y2++) {
if (y2 - 1 != y1)
maxn = max(maxn, b[c - 1][y1][y2 - 1]);
maxn = max(maxn, b[c - 1][y1][y2]);
maxn = max(maxn, b[c - 1][y1 - 1][y2]);
maxn = max(maxn, b[c - 1][y1 - 1][y2 - 1]);
b[c][y1][y2] = maxn + a[c - y1][y1] + a[c - y2][y2];
maxn = 0;
}
}
}
cout << b[n + m - 1][m - 1][m];
return 0;
}