#include"iostream"
#include"algorithm"
#include"vector"
#include"stack"
#include"queue"
#include"map"
#include"cstring"
#include"cstdio"
using namespace std;
struct NODE
{
long long int a,b;
}n[25010];
int cmp(NODE a,NODE b)
{if(a.a!=b.a)
return a.a<b.a;
else return a.b>b.b;
}
int main()
{
long long int a,i,b,m,j,c=0,k;
scanf("%lld%lld",&a,&b);
for(i=0;i<a;i++)
{
scanf("%lld%lld",&n[i].a,&n[i].b);
}
sort(n,n+a,cmp);
if(n[0].a!=1){printf("-1\n");return 0;}m=n[0].b;k=1;j=0;
for(i=1;i<a;i++)
{
if(n[i].a>m+1){m=j;k++;}
if(n[i].a<=m+1){
if(n[i].b>j)j=n[i].b;
if(n[i].b==b){k++;m=b;break;}
}
}
if(m==b)
printf("%lld\n",k);
else printf("-1\n");
return 0;
}
poj-2376
最新推荐文章于 2023-07-03 08:00:26 发布