using namespace std;
int m,n,v[26]={0},w[26]={0};
int f[30001]={0};
int main()
{ int i,j,max=0;
cin>>n>>m;
for(i=1;i<=m;i++)
cin>>v[i]>>w[i];
for(i=1;i<=m;i++)
for(j=n;j>=v[i];j++)
if(v[i]*w[i]+f[j-v[i]]>f[j])
f[j]=v[i]*w[i]+f[j-v[i]];
for(i=1;i<=n;i++)
if(max<f[i])
max=f[i];
cout<<max;
return 0;
}
using namespace std;
const int N=20000;
int v[N],w[N];
long d[26][30001];
int n,m;
int maxx(int a,int b)
{
if(a>b)
return a;
else
return b;
}
void xxx()
{
int i,j,k;
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
{
if(j-w[i]<0)
d[i][j]=d[i-1][j];
else
d[i][j]=maxx(d[i-1][j],d[i-1][j-w[i]]+v[i]);
}
}
/*for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
cout<<d[i][j]<<' ';
cout<<endl;
}*/
cout<<d[n][m];
}
int main ()
{
int i,j;
cin>>m>>n;
for(i=1;i<=n;i++)
{
cin>>w[i]>>v[i];
v[i]=w[i]*v[i];
}
for(i=0;i<=n;i++)
{
d[i][0]=0;
}
for(i=0;i<=m;i++)
{
d[0][i]=0;
}
xxx();
//system("pause");
return 0;
}