#include<cstdio>
int N,M;
int V[30],W[30];
int dp[100000][30];
int max(int a,int b)
{
if(a>b) return a;
return b;
}
int main()
{
scanf("%d%d",&N,&M);
for(int m=1;m<=M;m++) scanf("%d%d",&V[m],&W[m]);
for(int n=0;n<=N;n++)
if(n>=V[1]) dp[1][n]=V[1]*W[1];
for(int m=2;m<=M;m++)
for(int n=0;n<=N;n++)
{
if(n<V[m]) dp[m][n]=dp[m-1][n];
else dp[m][n]=max(dp[m-1][n-V[m]]+V[m]*W[m],dp[m-1][n]);
}
printf("%d",dp[N][M]);
return 0;
}
0pts+样例不过