#include<bits/stdc++.h>
#define long long int
using namespace std;
struct node{
int id,price,date,digits;
bool operator <(node b)const{
return price<b.price;
}
bool operator >(node b)const{
return price>b.price;
}
}a[100010];
bool cmp(const node ac,const node b){
return ac.price < b.price;
}
int days,kinds,sum,hasn[100010];
priority_queue<node,vector<node>,greater<node> >q;
int main(){
cin.tie();
cout.tie();
cin >> days >> kinds;
for(int i=1;i<=kinds;i++){
a[i].id=i;
cin >> a[i].price >> a[i].date >> a[i].digits;
q.push(a[i]);
}
sort(a+1,a+1+kinds,cmp);
int pos=1;
for(int i=days;i>0;i--){
while(days-i==q.top().date){
q.pop();
if(pos<=kinds) pos+=1;
q.push(a[pos]);
}
if(q.empty()){
cout << "-1" << endl;
return 0;
}
node tmp = q.top();
sum += tmp.price;
hasn[tmp.id]++;
if(tmp.digits==hasn[tmp.id]){
q.pop();
}
}
cout << sum << endl;
return 0;
}