#include<bits/stdc++.h>
using namespace std;
const int N=1e6;
int n,d,q1[N],q2[N],ans=1e9;
struct T
{
int x,y;
}t[N];
bool cmp(T a,T b)
{
return a.x<b.x;
}
int main()
{
freopen("P2698_2.in","r",stdin);
freopen("32423","w",stdout);
scanf("%d%d",&n,&d);
for(int i=1;i<=n;i++)
{
scanf("%d%d",&t[i].x,&t[i].y);
}
sort(t+1,t+1+n,cmp);
int l=t[1].x,l1=1,l2=1,r1=0,r2=0;
for(int i=1;i<=n;i++)
{
while(t[q1[l1]].y-t[q2[l2]].y>d)
{
if(t[q1[l1]].x<t[q2[l2]].x&&l1<=r1)l=t[q1[l1]].x+1,l1++;
if(t[q1[l1]].x>=t[q2[l2]].x&&l2<=r2)l=t[q2[l2]].x+1,l2++;
}
while(l1<=r1&&t[i].y>=t[q1[r1]].y)r1--;
while(l2<=r2&&t[i].y<=t[q2[r2]].y)r2--;
q1[++r1]=i;
q2[++r2]=i;
if(t[i].x-l==0)continue;
ans=min(ans,t[i].x-l);
}
if(ans==1e9)cout<<-1;
else cout<<ans<<endl;
return 0;
}