#include<bits/stdc++.h>
using namespace std;
const int N=16010;
const int M=110;
struct P{
int l,p,s;
}a[M];
int q[N];
int f[M][N];
int calc(int i,int k){
return f[i-1][k]-a[i].p*k;
}
bool cmp(P x,P y){
return x.s<y.s;
}
int main(){
int n,m;scanf("%d%d",&n,&m);
for(int i=1;i<=m;i++) scanf("%d%d%d",&a[i].l,&a[i].p,&a[i].s);
sort(a+1,a+1+m,cmp);
for(int i=1;i<=m;i++){
int l=1,r=0;
for(int k=max(0,a[i].s-a[i].l);k<=a[i].s-1;k++){
while(l<=r&&calc(i,q[r])<=calc(i,k)) r--;
q[++r]=k;
}
for(int j=1;j<=n;j++){
f[i][j]=max(f[i-1][j],f[i][j-1]);
if(j>=a[i].s){
while(l<=r&&j-q[l]>a[i].l) l++;
if(l<=r) f[i][j]=max(f[i][j],calc(i,q[l])+a[i].p*j);
}
}
}
printf("%d\n",f[m][n]);
return 0;
}