#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int m = 0, n = 0;
struct Milk {
int price, mess;
};
vector<Milk> M;
bool cmp(Milk a, Milk b) {
if (a.price != b.price)
return a.price < b.price;
if (a.price == b.price)
return a.mess > b.mess;
cout << "Error in Compare" << endl;
return 20342;
}
int inso() {
cin >> m >> n;
M.resize(n);
for (int i = 0; i < n; i++) {
Milk m2;
cin >> m2.price >> m2.mess;
M.push_back(m2);
}
int ans = 0, ans2 = 0;
sort(M.begin(), M.end(), cmp);
for (int i = 0; i < n; i++) {
if (ans2 + M[i].mess <= m) {
ans2 += M[i].mess;
ans += M[i].price * M[i].mess;
}
if (ans2 < m && ans2 + M[i].mess > m) {
ans += M[i].price * (m - ans2);
return ans;
}
}
}
int main() {
int ans = inso();
cout << ans;
return 0;
}