#include<bits/stdc++.h>
using namespace std;
int n,m;
int A[30][2];
long long Ji[30010][27];
long long dfs(int c,int bg,long long j)
{
if(c==m+1)return j;
if(Ji[bg][c]!=-1)return Ji[bg][c];
long long dfs1=-1,dfs2=-1;
if(bg+A[c][0]<=n)dfs1=dfs(c+1,bg+A[c][0],j+A[c][0]*A[c][1]);
dfs2=dfs(c+1,bg,j);
return Ji[bg][c]=max(dfs1,dfs2);
}
int main()
{
memset(Ji,-1,sizeof(Ji));
cin>>n>>m;
for(int i=1;i<=m;i++)
{
cin>>A[i][0]>>A[i][1];
}
cout<<dfs(1,0,0);
return 0;
}
用记搜做的,不知道哪错了