#include <iostream>
using namespace std;
int * money;
int * value;
inline int max(int a, int b) {
if (a > b) return a;
else return b;
}
int maxValue(int endIndex, int maxMoney) {
if (endIndex == 1)
{
if (money[endIndex] <= maxMoney) return value[endIndex];
else return 0;
}
int result1 = maxValue(endIndex - 1, maxMoney);
int result2;
if(maxMoney - money[endIndex]>0)
result2=maxValue(endIndex - 1, maxMoney - money[endIndex]) + value[endIndex];
else result2 = 0;
return max(result1, result2);
}
int main() {
int maxMoney, itemCount;
cin >> maxMoney >> itemCount;
money = new int[itemCount + 1];
value = new int[itemCount + 1];
for (int i = 1; i <= itemCount; i++) {
cin >> money[i];
int weight;
cin >> weight;
value[i] = weight*money[i];
}
cout << maxValue(itemCount, maxMoney);
delete[] money;
delete[] value;
}