#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#define MAXN 1000010
using namespace std;
inline int read(){
int x=0;
int f=1;
char ch;
ch=getchar();
while(ch>'9'||ch<'0'){
if(ch=='-'){
f=-f;
}
ch=getchar();
}
while(ch>='0'&&ch<='9'){
x=x*10+ch-'0';
ch=getchar();
}
return x*f;
}
long long t,m,ti[MAXN],vi[MAXN],dp[MAXN];
int main()
{
t=read();
m=read();
for(int i=1;i<=m;i++){
ti[i]=read();
vi[i]=read();
}
for(int i=1;i<=m;i++){
for(int j=ti[i];j<=t;j++){
dp[j]=max(dp[j],dp[j-ti[i]]+vi[i]);
}
}
printf("%lld",dp[t]);
return 0;
}