#include using namespace std; const int N = 1010; int n, m; int v[N], w[N]; int f[N]; /** 测试用例: 80 2 18 10 30 20 */ //完全背包问题 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 = w[i]; j <= m; j++) f[j] = max(f[j], f[j - w[i]] + v[i]); printf("%d\n", f[m]); return 0; }