#include <bits/stdc++.h>
#define debug cout << "ok\n";
#define SQR(x) (1LL * ((x) * (x)))
#define MASK(i) (1LL << (i))
#define BIT(x, i) (((x) >> (i)) & 1)
#define fi first
#define se second
#define pb push_back
#define mp make_pair
#define pii pair<int, int>
#define pll pair<ll, ll>
#define pli pair<ll, int>
#define vi vector<int>
#define vll vector<ll>
#define FAST ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
typedef long long ll;
typedef unsigned long long ull;
typedef long double ld;
typedef unsigned int ui;
using namespace std;
const int M = 1e9 + 7;
const int INF = 1e9 + 7;
const ll INFLL = (ll)2e18 + 7LL;
const ld PI = acos(-1);
const int dx[] = {1, -1, 0, 0, -1, 1, 1, -1};
const int dy[] = {0, 0, 1, -1, -1, -1, 1, 1};
template<class _, class __>
bool minimize(_ &x, const __ y){
if(x > y){
x = y;
return true;
} else return false;
}
template<class _, class __>
bool maximize(_ &x, const __ y){
if(x < y){
x = y;
return true;
} else return false;
}
//--------------------------------------------------------------
const int MaxN = 3007;
int n,W;
struct adj{
int w,v,a,b;
} a[MaxN];
namespace sub1 {
bool check() {
return n <= 100 && W <= 100;
}
ll f[107];
void sol() {
memset(f,0,sizeof(f));
for (int i=1;i<=n;i++) {
for (int j=W;j>=a[i].w;j--) {
for (int k=1;k<=j/a[i].w;k++) {
maximize(f[j],f[j-k*a[i].w] + 1LL*k*a[i].v - a[i].a*k*k + a[i].b);
}
}
}
cout << f[W];
}
}
namespace sub2{
bool check() {
for (int i=1;i<=n;i++) if (a[i].a != 0 || a[i].b != 0) return false;
return n <= 3000 && W <= 3000;
}
ll f[3007];
void sol() {
memset(f,0,sizeof(f));
for (int i=1;i<=n;i++) {
for (int j=a[i].w;j<=W;j++) {
maximize(f[j],f[j-a[i].w] + a[i].v);
}
}
cout << f[W];
}
}
void sol() {
cin >> n >> W;
for (int i=1;i<=n;i++) cin >> a[i].w >> a[i].v >> a[i].b >> a[i].a;
if (sub1::check()) {
sub1::sol();
return;
}
if (sub2::check()) {
sub2::sol();
return;
}
}
int main() {
freopen("test.inp","r",stdin);
freopen("test.out","w",stdout);
FAST
int t=1;
// cin >> t;
while (t--) sol();
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CgojZGVmaW5lIGRlYnVnICAgICBjb3V0IDw8ICJva1xuIjsKI2RlZmluZSBTUVIoeCkgICAgKDFMTCAqICgoeCkgKiAoeCkpKQojZGVmaW5lIE1BU0soaSkgICAoMUxMIDw8IChpKSkKI2RlZmluZSBCSVQoeCwgaSkgKCgoeCkgPj4gKGkpKSAmIDEpCiNkZWZpbmUgZmkgICAgICAgIGZpcnN0CiNkZWZpbmUgc2UgICAgICAgIHNlY29uZAojZGVmaW5lIHBiICAgICAgICBwdXNoX2JhY2sKCiNkZWZpbmUgbXAgbWFrZV9wYWlyCiNkZWZpbmUgcGlpIHBhaXI8aW50LCBpbnQ+CiNkZWZpbmUgcGxsIHBhaXI8bGwsIGxsPgojZGVmaW5lIHBsaSBwYWlyPGxsLCBpbnQ+CiNkZWZpbmUgdmkgdmVjdG9yPGludD4KI2RlZmluZSB2bGwgdmVjdG9yPGxsPgoKI2RlZmluZSBGQVNUIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7Y2luLnRpZSgwKTtjb3V0LnRpZSgwKTsKCnR5cGVkZWYgbG9uZyBsb25nIGxsOwp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgbG9uZyB1bGw7CnR5cGVkZWYgbG9uZyBkb3VibGUgbGQ7CnR5cGVkZWYgdW5zaWduZWQgaW50IHVpOwoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNvbnN0IGludCBNID0gMWU5ICsgNzsKY29uc3QgaW50IElORiA9IDFlOSArIDc7CmNvbnN0IGxsIElORkxMID0gKGxsKTJlMTggKyA3TEw7CmNvbnN0IGxkIFBJID0gYWNvcygtMSk7Cgpjb25zdCBpbnQgZHhbXSA9IHsxLCAtMSwgMCwgMCwgLTEsIDEsIDEsIC0xfTsKY29uc3QgaW50IGR5W10gPSB7MCwgMCwgMSwgLTEsIC0xLCAtMSwgMSwgMX07Cgp0ZW1wbGF0ZTxjbGFzcyBfLCBjbGFzcyBfXz4KICAgIGJvb2wgbWluaW1pemUoXyAmeCwgY29uc3QgX18geSl7CiAgICAgICAgaWYoeCA+IHkpewogICAgICAgICAgICB4ID0geTsKICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgfSBlbHNlIHJldHVybiBmYWxzZTsKICAgIH0KdGVtcGxhdGU8Y2xhc3MgXywgY2xhc3MgX18+CiAgICBib29sIG1heGltaXplKF8gJngsIGNvbnN0IF9fIHkpewogICAgICAgIGlmKHggPCB5KXsKICAgICAgICAgICAgeCA9IHk7CiAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgIH0gZWxzZSByZXR1cm4gZmFsc2U7CiAgICB9CgovLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpjb25zdCBpbnQgTWF4TiA9IDMwMDc7CgppbnQgbixXOwpzdHJ1Y3QgYWRqewogICAgaW50IHcsdixhLGI7Cn0gYVtNYXhOXTsKCm5hbWVzcGFjZSBzdWIxIHsKICAgIGJvb2wgY2hlY2soKSB7CiAgICAgICAgcmV0dXJuIG4gPD0gMTAwICYmIFcgPD0gMTAwOwogICAgfQoKICAgIGxsIGZbMTA3XTsKCiAgICB2b2lkIHNvbCgpIHsKICAgICAgICBtZW1zZXQoZiwwLHNpemVvZihmKSk7CiAgICAgICAgZm9yIChpbnQgaT0xO2k8PW47aSsrKSB7CiAgICAgICAgICAgIGZvciAoaW50IGo9VztqPj1hW2ldLnc7ai0tKSB7CiAgICAgICAgICAgICAgICBmb3IgKGludCBrPTE7azw9ai9hW2ldLnc7aysrKSB7CiAgICAgICAgICAgICAgICAgICAgbWF4aW1pemUoZltqXSxmW2otayphW2ldLnddICsgMUxMKmsqYVtpXS52IC0gYVtpXS5hKmsqayArIGFbaV0uYik7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgY291dCA8PCBmW1ddOwogICAgfQp9CgpuYW1lc3BhY2Ugc3ViMnsKICAgIGJvb2wgY2hlY2soKSB7CiAgICAgICAgZm9yIChpbnQgaT0xO2k8PW47aSsrKSBpZiAoYVtpXS5hICE9IDAgfHwgYVtpXS5iICE9IDApIHJldHVybiBmYWxzZTsKICAgICAgICByZXR1cm4gbiA8PSAzMDAwICYmIFcgPD0gMzAwMDsKICAgIH0KCiAgICBsbCBmWzMwMDddOwoKICAgIHZvaWQgc29sKCkgewogICAgICAgIG1lbXNldChmLDAsc2l6ZW9mKGYpKTsKICAgICAgICBmb3IgKGludCBpPTE7aTw9bjtpKyspIHsKICAgICAgICAgICAgZm9yIChpbnQgaj1hW2ldLnc7ajw9VztqKyspIHsKICAgICAgICAgICAgICAgIG1heGltaXplKGZbal0sZltqLWFbaV0ud10gKyBhW2ldLnYpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGNvdXQgPDwgZltXXTsKICAgIH0KfQoKdm9pZCBzb2woKSB7CiAgICBjaW4gPj4gbiA+PiBXOwogICAgZm9yIChpbnQgaT0xO2k8PW47aSsrKSBjaW4gPj4gYVtpXS53ID4+IGFbaV0udiA+PiBhW2ldLmIgPj4gYVtpXS5hOwogICAgaWYgKHN1YjE6OmNoZWNrKCkpIHsKICAgICAgICBzdWIxOjpzb2woKTsKICAgICAgICByZXR1cm47CiAgICB9CiAgICBpZiAoc3ViMjo6Y2hlY2soKSkgewogICAgICAgIHN1YjI6OnNvbCgpOwogICAgICAgIHJldHVybjsKICAgIH0KfQoKaW50IG1haW4oKSB7CglmcmVvcGVuKCJ0ZXN0LmlucCIsInIiLHN0ZGluKTsKCWZyZW9wZW4oInRlc3Qub3V0IiwidyIsc3Rkb3V0KTsKCUZBU1QKCWludCB0PTE7Ci8vCWNpbiA+PiB0OwoJd2hpbGUgKHQtLSkgc29sKCk7Cn0K