#include using namespace std; const int N = 1010; int n, m; int v[N], w[N]; int f[N]; /* 55 3 21 9 20 2 30 21 答案: 30 */ int main() { cin >> m >> n; // ① for (int i = 1; i <= n; i++) cin >> w[i] >> v[i]; for (int i = 1; i <= n; i++) for (int j = m; j >= w[i]; j--) f[j] = max(f[j], f[j - w[i]] + v[i]); // // ② // for (int i = 1; i <= n; i++) { // int w, v; // cin >> w >> v; // for (int j = m; j >= w; j--) // f[j] = max(f[j], f[j - w] + v); // } printf("%d\n", f[m]); return 0; }