#include<bits/stdc++.h>
using namespace std;
int n,t,j=1,cnt=0,w=1,k=0,c=0,k1=0,falg=0,pqo=0;
struct node
{
int a,b;
}u[25005];
bool cmp(node x,node y)
{
return x.a<y.a;
}
int main()
{
cin>>n>>t;
for(int i=1;i<=n;i++)
{
cin>>u[i].a>>u[i].b;
if(u[i].b==t) falg=1;
}
if(falg==0)
{
cout<<"-1";
return 0;
}
sort(u+1,u+n+1,cmp);
if(u[1].a!=1)
{
cout<<"-1";
return 0;
}
while(j<t)
{
pqo=0;
for(int i=w;i<=n;i++)
{
if(u[i].a>j+1)
{
break;
}
else
{
k=u[i].b;
}
if(k>k1)
{
c=i;
k1=k;
pqo++;
}
}
if(pqo==0)
{
cout<<"-1";
return 0;
}
w=c+1;
j=u[c].b;
cnt++;
}
cout<<cnt;
return 0;
}