#include<bits/stdc++.h>
using namespace std;
int t,maxp,w,ap[2009],bp[2009],as[2009],bs[2009],f[2009][2009],ans;
int q1[2309],h1,d1;
int q2[2309],h2,d2;
int main()
{
cin>>t>>maxp>>w;
for(int i=0;i<=t;i++)
for(int j=0;j<=maxp;j++)
f[i][j]=-1e9;
f[0][0]=0;
for(int i=1;i<=t;i++)
{
cin>>ap[i]>>bp[i]>>as[i]>>bs[i];
for(int j=0;j<=maxp+200;j++)
q1[j]=q2[j]=0;
h1=1;h2=1;d1=0;d2=0;
for(int j=0;j<=maxp;j++)
{
f[i][j]=f[i-1][j];
if(j<=as[i])
f[i][j]=max(f[i][j],-ap[i]*j);
if(i-w-1>=0)
{
while(h1<=d1&&q1[h1]<j-as[i]) h1++;
while(h1<=d1&&f[i-w-1][q1[d1]]+q1[d1]*ap[i]<f[i-w-1][j])d1--;
q1[++d1]=j;
f[i][j]=max(f[i][j],f[i-w-1][q1[h1]]+q1[h1]*ap[i]-j*ap[i]);
}
}
for(int j=maxp;j>=0;j--)
{
if(i-w-1>0)
{
while(h2<=d2&&q2[h2]>j+bs[i]) h2++;
while(h2<=d2&&f[i-w-1][q2[d2]]+q2[d2]*bp[i]<f[i-w-1][j])d2--;
q2[++d2]=j;
f[i][j]=max(f[i][j],f[i-w-1][q2[h2]]+q2[h2]*bp[i]-j*bp[i]);
}
ans=max(ans,f[i][j]);
}
}
cout<<ans;
return 0;
}