#include<bits/stdc++.h>
using namespace std;
#define int long long
#define maxn 1005
int d,g,dp[maxn][maxn],ans;
struct node {
int f,t,h;
} a[maxn];
bool cmp(node a,node b) {
return a.t<b.t;
}
signed main() {
memset(dp,-1,sizeof(dp));
cin>>d>>g;
for(int i=1; i<=g; i++) {
cin>>a[i].t>>a[i].f>>a[i].h;
ans+=a[i].f;
}
sort(a+1,a+g+1,cmp);
dp[0][0]=10;
for(int i=0; i<=g; i++) {
for(int j=0; j<=d; j++) {
if(dp[i][j]<0)continue;
if(j+a[i+1].h>=d&&dp[i][j]>=a[i+1].t-a[i].t) {
cout<<a[i+1].t;
return 0;
}
if(dp[i][j]>=(a[i+1].t-a[i].t)){
dp[i+1][j+a[i+1].h]=dp[i][j]-a[i+1].t+a[i].t;
dp[i+1][j]=max(dp[i+1][j],dp[i][j]-a[i+1].t+a[i].t+a[i+1].f);
}
}
}
cout<<ans+10;
return 0;
}