#include <bits/stdc++.h>
using namespace std;
int main(){
int c,n;
int v[100],p[100];
while(cin>>c>>n)
{
int dp[n+1][c+1];//出现dp[n][c],说明是0~c,开c+1个
for(int i=1;i<=n;i++)
{
cin>>p[i]>>v[i];//一个脑残的错误,p v 搞反了
}
for(int j=0;j<=c;j++)//初始化
{
dp[0][j]=0;
}
for(int i=1;i<=n;i++)
for(int j=0;j<=c;j++)
{
if(p[i]>j) dp[i][j]=dp[i-1][j];
else dp[i][j]=max(dp[i-1][j],v[i]+dp[i-1][j-p[i]]);
}
cout<<dp[n][c]<<endl;
}
return 0;
}

京公网安备 11010502036488号