//本来是可以用动规做的,但是也提供另一种方法
#include <stdio.h>
long int n,m;
int i,v[30],p[30];
long int maxget(int free,int now)
{
if(now==-1) return 0;
if(free-p[now]<0) return maxget(free,now-1);
long int max1,max2;
max1=maxget(free,now-1);
max2=maxget(free-p[now],now-1)+v[now]*p[now];
if(max1>max2)
return max1;
else
return max2;
}
int main()
{
scanf("%d %d",&n,&m);
for(i=0;i<m;i++) scanf("%d %d",&p[i],&v[i]);
printf("%d",maxget(n,m-1));
return 0;
}