#include<bits/stdc++.h>
using namespace std;
int n,m,c,v[1005],w[1005],f[1005],l;
vector<vector<int>> cnt;
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
cin>>m>>n;
cnt.reserve(105);
for (int i = 1; i <= n; ++i) {
cin>>w[i]>>v[i]>>c;
if(cnt[c].empty()){
l++;
}
cnt[c].push_back(i);
}
for (int i = 1; i <= l; ++i) {
for (int j = m; j >= 0; --j) {
for (auto k:cnt[i]) {
if(j>=w[k]){
f[j]=max(f[j],f[j-w[k]])+v[k];
}
}
}
}
cout<<f[m];
return 0;
}