#include<bits/stdc++.h>
using namespace std;
int w[105],c[105],dp[1005],t,m;
int main(){
cin>>t>>m;
for(int i=1;i<=m;++i) cin>>w[i]>>c[i];
for(int i=1;i<=m;++i) for(int j=t;j>=w[i];--j) dp[j]=max(dp[j],dp[j-w[i]]+c[i]);
cout<<dp[t]<<endl;
return 0;
}
dp为什么要清零