坑点就是一个点上会有很多星星qwq
#include<iostream>
#include<cstdio>
#include<cctype>
using namespace std;
int s[1010000],n,m,ToT,ans;
inline int read() {
int ret=0;int ch=getchar();
for (;!isdigit(ch);ch=getchar());
for (;isdigit(ch);ch=getchar()) ret=ret*10+ch-'0';
return ret;
}
int main() {
n=read();m=read();
for (int i=1;i<=n;i++) {
int x=read(),y=read();
s[x]+=y;ToT=max(ToT,x);
}
for (int i=1;i<=ToT;i++) s[i]+=s[i-1];
for (int i=ToT;i-m>=0;i--) ans=max(s[i]-s[i-m],ans);
printf("%d\n",ans);
return 0;
}