#include <bits/stdc++.h>
using namespace std;
const int MAX_N = 20;
int c[MAX_N], d[MAX_N], num[MAX_N];
int dp[MAX_N][MAX_N * 100];
int n, m, c0, d0, a, b;
int main() {
  while (scanf("%d%d%d%d", &n, &m, &c0, &d0) != EOF) {
    for (int i = 1; i <= m; i++) {
      scanf("%d%d", &a, &b);
      num[i] = a / b;
      scanf("%d%d", &c[i], &d[i]);
    }
    memset(dp, 0, sizeof dp);
    for (int i = 0; i <= n; i++) dp[0][i] = i / c0 * d0;
    for (int i = 1; i <= m; i++)
      for (int j = 0; j <= n; j++)
        for (int k = 0; k <= num[i]; k++) {
          if (j / c[i] < k) break;
          dp[i][j] = max(dp[i][j], dp[i - 1][j - c[i] * k] + d[i] * k);
        }
    int res = 0;
    for (int i = 0; i <= n; i++) res = max(res, dp[m][i]);
    printf("%d\n", res);
  }
  return 0;
}
