#include <bits/stdc++.h>
#define M 1000
using namespace std;
int n,m,vt[M+5],cnt,ans=1e9*2;
struct T{
int v,idx;
};
T A[M*M+5];
bool sf(T a,T b){
return a.v<b.v;
}
void input(){
cin>>n>>m;
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
cin>>A[m*i+j].v;
A[m*i+j].idx=i;
}
}
sort(A,A+n*m,sf);
}
void pro(){
int l=0,r=0;
while(r<n*m){
vt[A[r].idx]++;
if(vt[A[r].idx]==1) cnt++;
while(vt[A[l].idx]>1){
vt[A[l].idx]--;
l++;
}
if(cnt==n) ans=min(ans,A[r].v-A[l].v);
r++;
}
}
int main(){
cin.tie(0);
ios::sync_with_stdio(0);
//freopen("in.txt","r",stdin);
input();
pro();
cout<<ans<<endl;
return 0;
}
Comments
Post a Comment