//https://atcoder.jp/contests/arc076/tasks/arc076_d

#include<bits/stdc++.h>
const int N = 2e5 + 5;
const int inf = 1e9;
using namespace std;

int n, m, l[N], r[N], p[N], it[N << 2], sum[N << 2];
int ans;

void init(int i, int l, int r){
    int mid = (l + r) >> 1;
}

void update(int i, int l, int r, int id){
    if (l == r){
        if (it[i] == -inf) it[i] = 1 - (m - l + 1);
        else it[i]++;
        sum[i]++;
        return;
    }
    int mid = (l + r) >> 1;
    if (id <= mid) update(i << 1, l, mid, id);
    else update(i << 1 | 1, mid+1, r, id);
    sum[i] = sum[i << 1] + sum[i << 1 | 1];
    it[i] = max(it[i << 1] + sum[i << 1 | 1], it[i << 1 | 1]);
}

int main(){
    ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);
    cin >> n >> m;
    for (int i = 1; i <= n; i++) cin >> l[i] >> r[i], p[i] = i;
    sort(p+1, p+1+n, [](int x, int y){return (l[x] < l[y] || (l[x] == l[y] && r[x] > r[y]));});
    for (int i = 0; i < 4 * N; i++) it[i] = -inf;
    ans = max(0, n - m);
    for (int i = 1; i <= n; i++){
        int id = p[i];
        update(1, 1, m + 1, r[id]);
        ans = max(ans, it[1] - l[id]);
    }
    cout << ans;
}
