#include <bits/stdc++.h>
using namespace std;
const int N=105;
int n,d;
int f[N][N];
struct node {int t,h,f;}a[N];
signed main() {
cin>>d>>n;
for(int i=1;i<=n;++i) cin>>a[i].t>>a[i].f>>a[i].h;
sort(a+1,a+n+1,[](node x,node y){return x.t<y.t;});
memset(f,-1,sizeof(f));
f[0][0]=10;
for(int i=1;i<=n;++i) {
for(int j=a[i].h;j<=d;++j) {
if(j+a[i].h>=d&&
f[i-1][j]>=a[i].t-a[i-1].t) {
cout<<a[i].t;
return 0;
}
f[i][j]=max(f[i-1][j]+a[i].f-(a[i].t-a[i-1].t),
f[i-1][j-a[i].h]+(a[i].t-a[i-1].t));
}
}
int ans=10;
for(int i=1;i<=n;++i)
ans=max(ans,f[i][0]+a[i].t);
cout<<ans;
return 0;
}