#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
struct Objet {
double prix, poids, nb;
};
bool comp(const Objet& a, const Objet& b)
{
return (a.prix / a.poids) < (b.prix / b.poids);
}
signed main(void)
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
int poidsMax, nbObjets;
cin >> poidsMax >> nbObjets;
vector<Objet> objets(nbObjets);
for (int i = 0; i < nbObjets; i++)
cin >> objets[i].prix >> objets[i].poids >> objets[i].nb;
sort(objets.rbegin(), objets.rend(), comp);
int res = 0, poidsRestant = poidsMax;
for (int i = 0; i < nbObjets; i++)
{
double nbPris = poidsRestant / objets[i].poids;
res += objets[i].prix * (int)(min(objets[i].nb, nbPris));
poidsRestant -= objets[i].poids * (int)(min(objets[i].nb, nbPris));
}
cout << res << "\n";
return 0;
}