#include<bits/stdc++.h>
using namespace std;
int n,d,tmp1,tmp2;
const int N=1e6;
struct hhh
{
int x,time;
}a[N/10];
int main()
{
int i,j,maxn=0,minn=N,wid=N;
scanf("%d%d",&n,&d);
for(i=1;i<=n;i++)
{
scanf("%d%d",&tmp1,&tmp2);
a[i].x=tmp1,a[i].time=tmp2;
maxn=max(tmp2,maxn),minn=min(tmp2,minn);
}
if(abs(maxn-minn)<d)
{
printf("-1\n");
return 0;
}
else if(abs(maxn-minn)==d)
{
printf("%d\n",abs(maxn-minn));
return 0;
}
for(i=1;i<=n;i++)
{
for(j=i;j<=n;j++)
{
if(i==j) continue;
if(abs(a[i].time-a[j].time)>=d) wid=min(wid,abs(a[i].x-a[j].x));
}
}
printf("%d\n",wid);
}
听同机房的同学说,O(n2)能过。。。。?