#define _GLIBCXX_DEBUG #include using namespace std; #define rep(i, n) for (int i = 0; i < (ll)(n); i++) #define all(a) (a).begin(), (a).end() using ll = long long; const int INF32 = 2e9; const ll INF64 = 4e18; int main() { int N, H; cin >> N >> H; vector A(H,0), B(H,0),Aruiseki(H,0), Bruiseki(H,0); rep(i,N){ int Ai, Bi; cin >> Ai >> Bi; A[Ai]++; B[Bi]++; } Aruiseki[0]=A[0]; Bruiseki[0]=B[0]; for(int i = 1; i < H; i++){ Aruiseki[i]=Aruiseki[i-1]+A[i]; Bruiseki[i]=Bruiseki[i-1]+B[i]; } if(H==1){ cout << A[0] << endl; return 0; } int ans = 0; for(int i = 1; i < H; i++) { ans = max(ans, Aruiseki[i]-Bruiseki[i-1]); } cout << ans << endl; return 0; }