#include <bits/stdc++.h>
#define int long long
using namespace std;
int n,t;
struct str{
int l,r;
}a[1000007];
int d[100000007];
bool cmp(str a,str b){
if(a.r!=b.r) return a.r>b.r;
else if(a.l!=a.r)return a.l<b.l;
else return false;
}
int ssb(){
int cnt=0;
for(int i=1;i<=n;i++){
bool q=false;
for(int j=a[i].l;j<=a[i].r;j++){
if(d[j]==0){
d[j]=1;q=true;
}
}
if(q==true){
++cnt;
}
}
for(int i=1;i<=t;i++){
if(d[i]==0) return -1;
}
return cnt;
}
signed main(){
cin.tie(0);
cin>>n>>t;
for(int i=1;i<=n;i++){
cin>>a[i].l>>a[i].r;
}
sort(a+1,a+1+n,cmp);
int cnt=ssb();
cout<<cnt;
return 0;
}