#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int dp[110][1010];
struct stuff
{
int h,m;
}b[300];
int main()
{
memset(dp,0,sizeof(dp));
int n,m,i,j;
cin>>m>>n;
for(i=1;i<=n;i++)
{
scanf("%d%d",&b[i].h,&b[i].m);
b[i].m*=b[i].h;
}
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
{
if(b[i].h>j)
dp[i][j]=dp[i-1][j];
else
dp[i][j]=max(dp[i-1][j],dp[i-1][j-b[i].h]+b[i].m);
}
}
cout<<dp[n][m];
return 0;
}