#include<iostream>
using namespace std;
int Max(int ans[][1000000],int l1,int l2){
int m=0;
for(int i=0;i<l1;i++){
for(int j=0;j<l2;j++){
m=max(m,ans[i][j]);
}
}
return m;
}
int main(){
long long n,k,dp[10000000][10000000]={{0}};
cin>>n>>k;
for(int i=0;i<n;i++){
int x,y;
cin>>x>>y;
dp[x-1][y-1]=1;
}
for(int i=0;i<n+k-1;i++){
for(int j=0;j<n+k-1;j++){
dp[i+1][j]=max(dp[i+1][j],dp[i][j]+1);
dp[i][j+1]=max(dp[i][j+1],dp[i][j]+1);
}
}
cout<<Max(dp,n+k,n+k);
return 0;
}