#include <bits/stdc++.h>
#define ll long long int
#define X first
#define Y second
using namespace std;
ll dp[1005][15];
ll N,M,c0,d0;
ll a[15],b[15],c[15],d[15];
ll dpf(ll n,ll m)
{
if(n==0)return 0;
if(m==0)
return (n/c0)*d0;
if(dp[n][m]!=-1)
return dp[n][m];
ll ans=dpf(n,m-1);
for(ll i=1;n-i*c0>=0;i++)
ans=max(ans,i*d0+dpf(n-i*c0,m-1));
for(ll i=1;a[m]-i*b[m]>=0 && n-i*c[m]>=0 ;i++)
ans=max(ans,i*d[m]+dpf(n-i*c[m],m-1));
return dp[n][m]=ans;
}
int main()
{
cin>>N>>M>>c0>>d0;
for(int i=1;i<=M;i++)
cin>>a[i]>>b[i]>>c[i]>>d[i];
memset(dp,-1,sizeof(dp));
ll ans=dpf(N,M);
cout<<ans<<endl;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgbGwgbG9uZyBsb25nIGludCAKI2RlZmluZSBYIGZpcnN0CiNkZWZpbmUgWSBzZWNvbmQKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKbGwgZHBbMTAwNV1bMTVdOwpsbCBOLE0sYzAsZDA7CmxsIGFbMTVdLGJbMTVdLGNbMTVdLGRbMTVdOwpsbCBkcGYobGwgbixsbCBtKQp7CiAgICBpZihuPT0wKXJldHVybiAwOwogICAgaWYobT09MCkKICAgICAgICByZXR1cm4gKG4vYzApKmQwOwoKICAgIGlmKGRwW25dW21dIT0tMSkKICAgICAgICByZXR1cm4gZHBbbl1bbV07CiAgICBsbCBhbnM9ZHBmKG4sbS0xKTsKICAgIGZvcihsbCBpPTE7bi1pKmMwPj0wO2krKykKICAgICAgICBhbnM9bWF4KGFucyxpKmQwK2RwZihuLWkqYzAsbS0xKSk7CgogICAgZm9yKGxsIGk9MTthW21dLWkqYlttXT49MCAmJiBuLWkqY1ttXT49MCA7aSsrKQogICAgICAgIGFucz1tYXgoYW5zLGkqZFttXStkcGYobi1pKmNbbV0sbS0xKSk7CiAgICByZXR1cm4gZHBbbl1bbV09YW5zOwp9CmludCBtYWluKCkKewogICAgY2luPj5OPj5NPj5jMD4+ZDA7CiAgICBmb3IoaW50IGk9MTtpPD1NO2krKykKICAgICAgICBjaW4+PmFbaV0+PmJbaV0+PmNbaV0+PmRbaV07CgogICAgbWVtc2V0KGRwLC0xLHNpemVvZihkcCkpOwogICAgbGwgYW5zPWRwZihOLE0pOwogICAgY291dDw8YW5zPDxlbmRsOwoKICAgIHJldHVybiAwOwp9