#include <bits/stdc++.h>
using namespace std;
using ll = long long;
ll f(ll i, ll s, ll& n, vector<vector<ll>>& a, vector<vector<int>>& dp)
{
if (i == n) return 0;
if (s < 0) return (ll) -1e18;
if (dp[i][s] != -1) return dp[i][s];
ll pick = 0;
ll noPick = 0;
if (a[i][2])
{
a[i][2]--;
pick = a[i][0] + f(i, s - a[i][1], n, a, dp);
a[i][2]++;
}
noPick = f(i + 1, s, n, a, dp);
return dp[i][s] = max(pick, noPick);
}
signed main()
{
ios::sync_with_stdio(false);
cin.tie(NULL);
ll s, n;
cin >> s >> n;
vector<vector<ll>> a(n, vector<ll> (3, 0));
for (ll i = 0; i < n; i++)
{
for (ll j = 0; j < 3; j++)
{
cin >> a[i][j];
}
}
vector<vector<int>> dp(n + 1, vector<int> (s + 5, -1));
cout << f(0, s, n, a, dp);
return 0;
}