#include<iostream>
#include<vector>
#include<algorithm>
#include<utility>
#include<cmath>
using namespace std;
typedef long long ll;
const ll inf = 1e18;
int main(){
    ios::sync_with_stdio(false);
    cin.tie(0);
    int n, m;
    cin >> n >> m;
    vector<vector<ll>> vec(n + 1, vector<ll>(m + 1)), tl(n + 2, vector<ll>(m + 2, -inf)), tr(n + 2, vector<ll>(m + 2, -inf)), bl(n + 2, vector<ll>(m + 2, -inf)), br(n + 2, vector<ll>(m + 2, -inf));
    for(int i = 1; i <= n; i++) for(int j = 1; j <= m; j++) cin >> vec[i][j];
    ll ans = 0;
    for(int i = 1; i <= n; i++){
        for(int j = 1; j <= m; j++){
            tl[i][j] = max(tl[i - 1][j], tl[i][j - 1]);
            tl[i][j] = max(tl[i][j], -vec[i][j] + i + j);
        }
    }
    for(int i = 1; i <= n; i++){
        for(int j = m; j > 0; j--){
            tr[i][j] = max(tr[i - 1][j], tr[i][j + 1]);
            tr[i][j] = max(tr[i][j], -vec[i][j] + i - j);
        }
    }
    for(int i = n; i > 0; i--){
        for(int j = 1; j <= m; j++){
            bl[i][j] = max(bl[i + 1][j], bl[i][j - 1]);
            bl[i][j] = max(bl[i][j], -vec[i][j] - i + j);
        }
    }
    for(int i = n; i > 0; i--){
        for(int j = m; j > 0; j--){
            br[i][j] = max(br[i + 1][j], br[i][j + 1]);
            br[i][j] = max(br[i][j], -vec[i][j] - i - j);
        }
    }
    for(int i = 1; i <= n; i++){
        for(int j = 1; j <= m; j++){
            ans = max(ans, vec[i][j] - i - j + tl[i][j]);
            ans = max(ans, vec[i][j] - i + j + tr[i][j]);
            ans = max(ans, vec[i][j] + i - j + bl[i][j]);
            ans = max(ans, vec[i][j] + i + j + br[i][j]);
        }
    }
    cout << ans - 1 << "\n";
}
// g++ -std=c++17 -Wall -Wextra -Wshadow -fsanitize=undefined -fsanitize=address -o run pA.cpp -g
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... |