#include <bits/stdc++.h>
using namespace std;
int n, m, c0, d0, hsl;
int a[15], b[15], c[15], d[15];
int dp[1005][15];
bool dpf[1005][15];
int proc(int x, int num) {
  if (num == 0) {
    return 0;
  } else if (dpf[x][num]) {
    return dp[x][num];
  } else {
    int &ret = dp[x][num];
    ret = 0;
    dpf[x][num] = true;
    for (int i = 0; (i <= (a[num] / b[num])) && (x >= c[num] * i); i++) {
      ret = max(ret, proc(x - c[num] * i, num - 1) + d[num] * i);
    }
    return ret;
  }
}
int main() {
  scanf("%d %d %d %d", &n, &m, &c0, &d0);
  for (int i = 1; i <= m; i++) {
    scanf("%d %d %d %d", &a[i], &b[i], &c[i], &d[i]);
  }
  hsl = 0;
  for (int i = 0; i <= n; i++) {
    hsl = max(hsl, proc(i, m) + ((n - i) / c0) * d0);
  }
  printf("%d\n", hsl);
}
