#include<cstdio>
#include<cstdlib>
using namespace std;
#define INF 100+5
const int MAXN=1000+5,MAXV=1000+5;
int max(int a,int b)
{
return a>b?a:b;
}
int m,n,maxg;
int w[MAXN+1],p[MAXN+1];
int g[INF+1][MAXN+1];
int dp[MAXV];
int main()
{
int c;
scanf("%d%d",&m,&n);
for(int i=1;i<=n;i++)
{
scanf("%d%d%d",&w[i],&p[i],&c);
g[c][++g[c][0]]=i;
maxg=max(maxg,c);
}
for(int i=1;i<=maxg;i++)
for(int j=m;j>=0;j--)
for(int k=1;k<=g[i][0];k++)
if(j>=w[g[i][k]])
dp[j]=max(dp[j],dp[j-w[g[i][k]]]+p[g[i][k]]);
printf("%d",dp[m]);
return 0;
}