#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n, m;
cin >> n >> m;
vector<int> s(n), e(n);
for (int i = 0; i < n; i++) {
cin >> s[i] >> e[i];
}
int ans = n + 1;
for (int mask = 1; mask < (1 << n); mask++) {
vector<pair<int, int>> a;
for (int j = 0; j < n; j++) {
if (mask >> j & 1) {
if (s[j] <= e[j]) {
a.emplace_back(s[j], e[j]);
} else {
a.emplace_back(0, e[j]);
a.emplace_back(s[j], m - 1);
}
}
}
sort(a.begin(), a.end());
int L = a[0].first, R = a[0].second;
for (int i = 1; i < int(a.size()); i++) {
if (a[i].first > R) {
break;
}
R = max(R, a[i].second);
}
if (L == 0 && R == m - 1) {
ans = min(ans, __builtin_popcount(mask));
}
}
cout << (ans == n + 1 ? -1 : ans) << '\n';
return 0;
}