#include using namespace std; using ll = long long; #ifdef LOCAL #include "algo/debug.h" #else #define debug(...) (void(0)) #endif void run_case(); int main() { std::ios_base::sync_with_stdio(false); std::cin.tie(nullptr); int T = 1; // cin >> T; while (T--) run_case(); return 0; } void run_case() { int N, M; cin >> N >> M; vector> D(N, vector(M)); for(int i = 0; i < N; i++) { for(int j = 0; j < M; j++) cin >> D[i][j]; sort(D[i].begin(), D[i].end()); } int ans = 1e9; for(int i = 0; i < M; i++) { int diff = 0; bool ok = true; int cur = D[0][i]; for(int j = 1; j < N; j++) { int id = lower_bound(D[j].begin(), D[j].end(), cur) - D[j].begin(); if(id == M) { ok = false; break; } diff = max(diff, D[j][id] - cur); cur = D[j][id]; } if(ok) ans = min(ans, diff); } cout << (ans == (int)1e9 ? -1 : ans) << endl; }