#include <bits/stdc++.h>
using namespace std;
struct node{
int c,w,p;
};
node a[40];
int v,n,f[210];
int main(){
cin>>v>>n;
for(int i=1;i<=n;i++) {
cin>>a[i].c>>a[i].w>>a[i].p;
}
for(int i=1;i<=n;i++)
for(int j=v;j>=a[i].c;j--)
for(int k=1;k<=(a[i].p==0 ? j/a[i].c : a[i].p);k++)
if(j>=k*a[i].c) f[j]=max(f[j],f[j-k*a[i].c]+k*a[i].w);
cout<<f[v];
return 0;
}