#include <stdio.h>
#include <string.h>
long long max(long long x1,long long x2)
{
return x1>x2?x1:x2;
}
int bag(int weight,int n,int *w,int *v)
{
int i,j;
long long f[n+1][weight+1];
memset(f,0,sizeof(int)*(n+1)*(weight+1));
for(i=1;i<=n;i++)
{
for(j=1;j<=weight;j++)
{
f[i][j]=f[i-1][j];
if(j>=w[i])
f[i][j]=max(f[i][j],f[i][j-w[i]]+v[i]);
}
}
return f[n][weight];
}
int main()
{
int i,j,weight,n,max;
scanf("%d %d",&weight,&n);
int w[n+1],v[n+1];
for(i=1;i<=n;i++)
scanf("%d %d",&w[i],&v[i]);
max=bag(weight,n,w,v);
printf("%lld",max);
return 0;
}