#include<bits/stdc++.h>
using namespace std;
int t,m;
int dp[109][1009];
struct cao{
int time;
int value;
}cao[109];
int main(){
cin>>t>>m;
for(int i=1;i<=m;i++){
int time,value;
cin>>time>>value;
cao[i].time=time;
cao[i].value=value;
}
for(int i=1;i<=m;i++){
for(int j=1;j<=t;j++){
if(cao[i].time>j){
dp[i][j]=dp[i-1][j];
}
else{
dp[i][j]=max(dp[i-1][j],dp[i-1][j-cao[i].time]+cao[i].value);
}
}
}
int maxx=0;
for(int i=1;i<=m;i++){
for(int j=1;j<=t;j++){
if(maxx<dp[i][j])
maxx=dp[i][j];
}
}
cout<<maxx;
return 0;
}