#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const int MAXN = 1e5 + 5;
int s, n, dp[MAXN];
vector<pair<int, int>> wei[MAXN];
signed main(){
ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
freopen("B4.inp", "r", stdin);
freopen("B4.out", "w", stdout);
cin >> s >> n;
for(int i = 1; i <= n; ++i){
int v, w, k;
cin >> v >> w >> k;
if(w > s) continue;
wei[w].push_back({v, k});
}
for(int i = 1; i <= s; ++i){
dp[i] = -1e9;
}
dp[0] = 0;
for(int w = 1; w <= s; ++w){
sort(wei[w].begin(), wei[w].end(), greater<>());
}
for(int w = 1; w <= s; ++w){
if(wei[w].empty()) continue;
vector<int> items;
int limit = s / w;
for(auto [val, cnt] : wei[w]){
int take = min(cnt, limit);
limit -= take;
while(take--) items.push_back(val);
if(limit == 0) break;
}
for(int v : items){
for(int i = s; i >= w; --i){
if(dp[i - w] != -1e9){
dp[i] = max(dp[i], dp[i - w] + v);
}
}
}
}
int res = 0;
for(int i = 1; i <= s; ++i){
res = max(res, dp[i]);
}
cout << res;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnVzaW5nIGxsID0gbG9uZyBsb25nOwpjb25zdCBpbnQgTUFYTiA9IDFlNSArIDU7CgoKaW50IHMsIG4sIGRwW01BWE5dOwp2ZWN0b3I8cGFpcjxpbnQsIGludD4+IHdlaVtNQVhOXTsKc2lnbmVkIG1haW4oKXsKICAgIGlvczo6c3luY193aXRoX3N0ZGlvKDApOyBjaW4udGllKDApOyBjb3V0LnRpZSgwKTsKICAgIGZyZW9wZW4oIkI0LmlucCIsICJyIiwgc3RkaW4pOwogICAgZnJlb3BlbigiQjQub3V0IiwgInciLCBzdGRvdXQpOwogICAgY2luID4+IHMgPj4gbjsKICAgIGZvcihpbnQgaSA9IDE7IGkgPD0gbjsgKytpKXsKICAgICAgICBpbnQgdiwgdywgazsKICAgICAgICBjaW4gPj4gdiA+PiB3ID4+IGs7CiAgICAgICAgaWYodyA+IHMpIGNvbnRpbnVlOwogICAgICAgIHdlaVt3XS5wdXNoX2JhY2soe3YsIGt9KTsKICAgIH0KCiAgICBmb3IoaW50IGkgPSAxOyBpIDw9IHM7ICsraSl7CiAgICAgICAgZHBbaV0gPSAtMWU5OwogICAgfQogICAgZHBbMF0gPSAwOwoKICAgIGZvcihpbnQgdyA9IDE7IHcgPD0gczsgKyt3KXsKICAgICAgICBzb3J0KHdlaVt3XS5iZWdpbigpLCB3ZWlbd10uZW5kKCksIGdyZWF0ZXI8PigpKTsKICAgIH0KCiAgICBmb3IoaW50IHcgPSAxOyB3IDw9IHM7ICsrdyl7CiAgICAgICAgaWYod2VpW3ddLmVtcHR5KCkpIGNvbnRpbnVlOwoKICAgICAgICB2ZWN0b3I8aW50PiBpdGVtczsKICAgICAgICBpbnQgbGltaXQgPSBzIC8gdzsKICAgICAgICBmb3IoYXV0byBbdmFsLCBjbnRdIDogd2VpW3ddKXsKICAgICAgICAgICAgaW50IHRha2UgPSBtaW4oY250LCBsaW1pdCk7CiAgICAgICAgICAgIGxpbWl0IC09IHRha2U7CiAgICAgICAgICAgIHdoaWxlKHRha2UtLSkgaXRlbXMucHVzaF9iYWNrKHZhbCk7CiAgICAgICAgICAgIGlmKGxpbWl0ID09IDApIGJyZWFrOwogICAgICAgIH0KCiAgICAgICAgZm9yKGludCB2IDogaXRlbXMpewogICAgICAgICAgICBmb3IoaW50IGkgPSBzOyBpID49IHc7IC0taSl7CiAgICAgICAgICAgICAgICBpZihkcFtpIC0gd10gIT0gLTFlOSl7CiAgICAgICAgICAgICAgICAgICAgZHBbaV0gPSBtYXgoZHBbaV0sIGRwW2kgLSB3XSArIHYpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIGludCByZXMgPSAwOwogICAgZm9yKGludCBpID0gMTsgaSA8PSBzOyArK2kpewogICAgICAgIHJlcyA9IG1heChyZXMsIGRwW2ldKTsKICAgIH0KICAgIGNvdXQgPDwgcmVzOwoKICAgIHJldHVybiAwOwp9