#include<bits/stdc++.h>
using namespace std;
int n, t, cnt[1000005], sum[25005], ans;
struct node {
int a, b;
}a[25005];
bool cmp(node a, node b) {
return (a.b - a.a) < (b.b - b.a);
}
signed main() {
cin >> n >> t;
for(int i = 1;i <= n;i ++) {
cin >> a[i].a >> a[i].b;
}
sort(a + 1, a + n + 1, cmp);
for(int i = 1;i <= n;i ++) {
for(int j = a[i].a;j <= a[i].b;j ++) {
cnt[j] = i;
}
}
for(int i = 1;i <= t;i ++) {
if(sum[cnt[i]] == 0) {
sum[cnt[i]] = 1;
ans ++;
}
if(cnt[i] == 0) {
cout << -1;
return 0;
}
}
cout << ans;
}