#include <bits/stdc++.h>
#define INF 999999999
using namespace std;
struct node
{
long long x,y;
}d[600];
long long n,k,e[600][200],p[600][600],ans=0,b,c;
bool cmp(struct node a,struct node b)
{
return a.x<b.x;
}
int main()
{
scanf("%d%d",&n,&k);
for(int i=1;i<=n;i++)
scanf("%d%d",&d[i].x,&d[i].y);
sort(d+1,d+n+1,cmp);
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
if(i==j)e[i][j]=0;
else e[i][j]=INF;
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
if((d[i].y<=d[j].y)&&(d[i].x<=d[j].x)&&i!=j)e[i][j]=d[j].x-d[i].x+d[j].y-d[i].y-1,p[i][j]=d[j].x-d[i].x+d[j].y-d[i].y-1;
for(int k=1;k<=n;k++)
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
if(e[i][k]+e[k][j]<e[i][j])
e[i][j]=e[i][k]+e[k][j];
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
if(e[i][j]<=k&&p[i][j]+2>ans)ans=p[i][j]+2,b=i,c=j;
printf("%d",ans+k-e[b][c]);
return 0;
}
谢谢dalao了