#include <iostream>
#include <algorithm>
#include <vector>
#include <map>
#include <set>
#include <random>
#include <queue>
#include <numeric>
#include <array>
#include <iomanip>
#include <stack>
#include <chrono>
#include <climits>
using namespace std;
using ll = long long;
using ld = long double;
using vi = vector<ll>;
using vii = vector<vi>;
using viii = vector<vii>;
using pi = pair<ll, ll>;
using vpi = vector<pi>;
using vb = vector<bool>;
using vs = vector<string>;
#define vec vector
#define cmax(x, y) x = max({x, y})
#define cmin(x, y) x = min({x, y})
#define all(x) x.begin(), x.end()
#define rall(x) x.rbegin(), x.rend()
const ll N = 1e3 + 5, MOD = 1e9 + 7, INF = (ll)1e18, K = 20;
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
void rotate(vii& a) {
ll n = a.size();
ll m = a[0].size();
vii b(m, vi(n));
for (ll i = 0; i < n; i++) {
for (ll j = 0; j < m; j++) {
b[j][n - i - 1] = a[i][j];
}
}
a = b;
}
ll check(vii& a) {
ll n = a.size();
ll m = a[0].size();
map<ll, vpi> mp;
for (ll i = 0; i < n; i++) {
for (ll j = 0; j < m; j++) {
mp[a[i][j]].push_back({i + 1, j + 1});
}
}
vii pref(n + 1, vi(m + 1));
for (ll i = 1; i <= n; i++) {
for (ll j = 1; j <= m; j++) {
pref[i][j] = max({a[i - 1][j - 1], pref[i - 1][j], pref[i][j - 1]});
}
}
ll mx = (*mp.rbegin()).first;
ll mn = (*mp.begin()).first;
ll mx2 = (*mp.begin()).first;
ll ans = INF;
for (auto& [f, s] : mp) {
cmin(ans, max(mx - f, mx2 - mn));
for (auto& [x, y] : s) {
cmax(mx2, pref[x][y]);
}
}
return ans;
}
void solve() {
ll n, m; cin >> n >> m;
vii a(n, vi(m));
for (auto& x : a) {
for (auto& y : x) cin >> y;
}
ll ans = INF;
cmin(ans, check(a));
rotate(a);
cmin(ans, check(a));
rotate(a);
cmin(ans, check(a));
rotate(a);
cmin(ans, check(a));
cout << ans << '\n';
}
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
long long tt = 1;
//cin >> tt;
while (tt--) {
solve();
cout << '\n';
}
return 0;
}
/*
Какие темы повторить:
1) мст
2) 2сат
3) точки артикуляции
4) ксор базис
5) эйлеровый цикл, путь
6) кмп
7) конвекс хулл
8) вафельное дерево
9) суфиксный массив
10) суффиксный автомат
11) ним
*/