#include <bits/stdc++.h>
using namespace std;
#define mp make_pair
#define fr first
#define sc second
const long long inf=1e18;
long long n,m,d,ps[2][400069];
pair<long long,pair<long long,long long>> a[400069];
int main()
{
long long i,ii,k,l,w,c[2]={0,0},e,p,z=0;
scanf("%lld%lld%lld",&n,&m,&d);
for(i=1;i<=n;i++)
{
scanf("%lld%lld%lld",&k,&w,&l);
a[i*4-3]={k-1,{0,1}};
a[i*4-2]={k+w-1,{1,1}};
a[i*4-1]={l,{0,-1}};
a[i*4]={l,{1,-1}};
}
sort(a+1,a+n*4+1);
for(i=1;i<=n*4;i++)
{
k=a[i].fr;
e=a[i].sc.fr;
w=a[i].sc.sc;
for(ii=0;ii<2;ii++)
{
ps[ii][i]=ps[ii][i-1];
}
c[e]+=w;
if(!e)
{
if(c[0]>=m&&c[0]-w<m)
{
ps[0][i]-=c[1];
ps[1][i]-=k*c[1];
}
else if(c[0]<m&&c[0]-w>=m)
{
ps[0][i]+=c[1];
ps[1][i]+=k*c[1];
}
}
else if(c[0]>=m)
{
ps[0][i]-=w;
ps[1][i]-=k*w;
}
p=upper_bound(a+1,a+n*4+1,mp(k-d,mp(inf,inf)))-a-1;
z=max(z,ps[1][i]+k*-ps[0][i]-(ps[1][p]+(k-d)*-ps[0][p]));
}
printf("%lld\n",z);
}