#include <bits/stdc++.h>
using namespace std;
#define ll long long
const ll INF = (ll)4e18;
int main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n, m;
cin >> n >> m;
int s[m], p[m], w[m];
for(int i = 0; i < m; i++){
cin >> s[i] >> p[i] >> w[i];
}
vector<ll> dp(n+1, INF), ndp(n+1);
dp[0] = 0;
for(int i = 0; i < m; i++){
ndp = dp;
deque<int> deq;
auto &pi = p[i];
auto &wi = w[i];
int si = s[i];
for(int j = 0; j <= n; j++){
if(j-1 >= 0){
int t = j-1;
ll val = dp[t] - (ll)pi * t;
while(!deq.empty() && (dp[deq.back()] - (ll)pi * deq.back()) >= val)
deq.pop_back();
deq.push_back(t);
}
while(!deq.empty() && deq.front() < j - si)
deq.pop_front();
if(!deq.empty()){
ll best = dp[deq.front()] - (ll)pi * deq.front();
ndp[j] = min(ndp[j], best + wi + (ll)pi * j);
}
}
dp.swap(ndp);
}
cout << dp[n] << "\n";
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgbGwgIGxvbmcgbG9uZwpjb25zdCBsbCBJTkYgPSAobGwpNGUxODsKCmludCBtYWluKCl7CiAgICBpb3M6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKG51bGxwdHIpOwoKICAgIGludCBuLCBtOwogICAgY2luID4+IG4gPj4gbTsKICAgIGludCBzW21dLCBwW21dLCB3W21dOwogICAgZm9yKGludCBpID0gMDsgaSA8IG07IGkrKyl7CiAgICAgICAgY2luID4+IHNbaV0gPj4gcFtpXSA+PiB3W2ldOwogICAgfQogICAgdmVjdG9yPGxsPiBkcChuKzEsIElORiksIG5kcChuKzEpOwogICAgZHBbMF0gPSAwOwoKICAgIGZvcihpbnQgaSA9IDA7IGkgPCBtOyBpKyspewogICAgICAgIG5kcCA9IGRwOwogICAgICAgIGRlcXVlPGludD4gZGVxOwogICAgICAgIGF1dG8gJnBpID0gcFtpXTsKICAgICAgICBhdXRvICZ3aSA9IHdbaV07CiAgICAgICAgaW50IHNpID0gc1tpXTsKICAgICAgICBmb3IoaW50IGogPSAwOyBqIDw9IG47IGorKyl7CiAgICAgICAgICAgIGlmKGotMSA+PSAwKXsKICAgICAgICAgICAgICAgIGludCB0ID0gai0xOwogICAgICAgICAgICAgICAgbGwgdmFsID0gZHBbdF0gLSAobGwpcGkgKiB0OwogICAgICAgICAgICAgICAgd2hpbGUoIWRlcS5lbXB0eSgpICYmIChkcFtkZXEuYmFjaygpXSAtIChsbClwaSAqIGRlcS5iYWNrKCkpID49IHZhbCkKICAgICAgICAgICAgICAgICAgICBkZXEucG9wX2JhY2soKTsKICAgICAgICAgICAgICAgIGRlcS5wdXNoX2JhY2sodCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgd2hpbGUoIWRlcS5lbXB0eSgpICYmIGRlcS5mcm9udCgpIDwgaiAtIHNpKQogICAgICAgICAgICAgICAgZGVxLnBvcF9mcm9udCgpOwogICAgICAgICAgICBpZighZGVxLmVtcHR5KCkpewogICAgICAgICAgICAgICAgbGwgYmVzdCA9IGRwW2RlcS5mcm9udCgpXSAtIChsbClwaSAqIGRlcS5mcm9udCgpOwogICAgICAgICAgICAgICAgbmRwW2pdID0gbWluKG5kcFtqXSwgYmVzdCArIHdpICsgKGxsKXBpICogaik7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZHAuc3dhcChuZHApOwogICAgfQoKICAgIGNvdXQgPDwgZHBbbl0gPDwgIlxuIjsKICAgIHJldHVybiAwOwp9Cg==