#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
using namespace std;
const int N=50500;
struct node{
int sum,id;
}a[N];
int n,m,sum=0,minn=1e9;
bool vis[N];
bool cmp1(node a,node b){
return a.sum<b.sum;
}
bool check(int l,int r){
bool dis[N]={0};
int cnt=0;
for(int i=l;i<=r;i++){
if(dis[a[i].id]==0){
cnt++;
dis[a[i].id]=1;
}
}
if(cnt==sum) return 1;
else return 0;
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i].sum>>a[i].id;
if(vis[a[i].id]==0){
vis[a[i].id]=1;
sum++;
}
}
sort(a+1,a+n+1,cmp1);
int l=1,r=1;
while(r<=n){
r++;
while(l<=n){
if(check(l,r)||check(r,l))minn=min(minn,abs(a[r].sum-a[l].sum));
l++;
}
}
cout<<minn;
return 0;
}