#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; }