#include<bits/stdc++.h>
using namespace std;
//dp[i]表示i容量的體積能得到的最大價值
//c[i]表示第i個物體的體積
//v[i]表示第i個物體的價值
int t,m,dp[1010],c[105],v[105];
int main(){
cin>>t>>m;//t為物體個數 m為背包容量
for(int i=1;i<=m;i++) cin>>c[i]>>v[i]; //輸入各個物體體積和價值
for(int i=1;i<=m;i++){
for(int j=t;j>=c[i];j--)
dp[j] = max(dp[j], dp[j-c[i]] + v[i]);
}
cout<<dp[t];
return 0;
}