#include <iostream>
#include <cstring>
using namespace std;
const int MAXN = 1000 + 10;
const int MAXM = 100 + 10;
int dp[MAXN];
int weight[MAXM];
int value[MAXM];
int main() {
int t, m;
while (cin >> t >>m){
for (int i = 1; i <= m; i++){
cin >> weight[i] >> value[i];
}
memset(dp, 0, sizeof(dp));
for (int i = 1; i <= m; i++){
for (int j = t; j >= weight[i]; j--){
dp[j] = max(dp[j], dp[j - weight[i]] + value[i]);
}
}
cout << dp[t] << endl;
}
return 0;
}

京公网安备 11010502036488号