#include<bits/stdc++.h>
using namespace std;
const int maxn=105,maxv=1005;
int n,allv,w[maxn],p[maxn],f[maxv];
int read(){
int ret=0;char ch=getchar();
while (ch<'0'||'9'<ch) ch=getchar();
while ('0'<=ch&&ch<='9') ret=ret*10+ch-'0',ch=getchar();
return ret;
}
int main(){
allv=read(),n=read();
for (int i=1;i<=n;i++) w[i]=read(),p[i]=read();
for (int i=1;i<=n;i++)
for (int j=allv;j>w[i];j--)
f[j]=max(f[j-w[i]]+p[i],f[j]);
printf("%d\n",f[allv]);
return 0;
}
是哪里错了