#include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using ll = long long; ll N, M; vector> D; bool solve(ll c){ ll n; vector q; for (int i=0; i p; for (int j=0; j 0; } int main(){ cin >> N >> M; if (N == 1){ cout << 0 << endl; return 0; } D.resize(N, vector(M)); for (int i=0; i> D[i][j]; sort(D[i].begin(), D[i].end()); } ll l=-1, r=1e9, c; while(r-l>1){ c = (l+r)/2; if (solve(c)) r=c; else l=c; } cout << (r == 1e9 ? -1 : r) << endl; return 0; }