#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N=1e5+6;
const int MAX=2e3+4;
vector<int>v[N];
vector<pair<int,int>>v1[N];
int dp[N];
void solve(){
int s,n;cin>>s>>n;
for(int i=1;i<=n;i++){
int x,y,z;
cin>>x>>y>>z;
v1[y].push_back({x,z});
}
int cnt=0;
for(int i=1;i<=MAX-1;i++){
sort(v1[i].begin(),v1[i].end(),greater<pair<int,int>>());
cnt=s/i;
for(int j=0;j<v1[i].size();j++){
if(v[i].size()<cnt){
int s1=v1[i][j].second;
while(s1){
v[i].push_back(v1[i][j].first);
s1--;
if(v[i].size()>=cnt) break;
}
}
}
}
for(int i=0;i<=MAX-1;i++){
sort(v[i].begin(),v[i].end(),greater<int>());
}
for(int w=1;w<=s;w++){
for(int i=0;i<v[w].size();i++){
for(int j=s;j>=w;j--){
//ignore if(j>=w)
dp[j]=max(dp[j],dp[j-w]+v[w][i]);
}
}
}
int ans=0;
for(int j=0;j<=s;j++){
ans=max(ans,dp[j]);
}
cout<<ans;
}
signed main(){
int t=1;//cin>>t;
while(t--){
solve();
}
}