#include <bits/stdc++.h>
using namespace std;
#define ll long long
int main()
{
ll n,m,ca=0;
cin>>n>>m;
vector<vector<ll>>v(n+5,vector<ll>(m+5)),a(n+5,vector<ll>(m+5,-11)),b(n+5,vector<ll>(m+5,-10)),c(n+5,vector<ll>(m+5,-10)),d(n+5,vector<ll>(m+5,-10));
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
cin>>v[i][j];
}
}
for(int i=n;i>=1;i--)
{
for(int j=m;j>=1;j--)
{
a[i][j]=max({a[i][j+1],a[i+1][j],v[i][j]-i-j-1});
}
}
for(int i=n;i>=1;i--)
{
for(int j=1;j<=m;j++)
{
b[i][j]=max({b[i][j-1],b[i+1][j],v[i][j]-i+j-1});
}
}
for(int i=1;i<=n;i++)
{
for(int j=m;j>=1;j--)
{
c[i][j]=max({c[i][j+1],c[i-1][j],v[i][j]+i-j-1});
}
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
d[i][j]=max({d[i][j-1],d[i-1][j],v[i][j]+i+j-1});
}
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
ca=max(ca,a[i][j]-v[i][j]+i+j);
ca=max(ca,b[i][j]-v[i][j]+i-j);
ca=max(ca,c[i][j]-v[i][j]-i+j);
ca=max(ca,d[i][j]-v[i][j]-i-j);
}
}
cout<<ca;
}