//f[i][j]只选前i个物品,体积小与j的最大价值
#include<iostream>
#include<algorithm>
using namespace std;
const int N=1100;
int t[N],w[N];
int f[N];
int main()
{
int m,n;
cin>>m>>n;
for(int i=1;i<=n;i++)cin>>t[i]>>w[i];
for(int i=1;i<=n;i++)
for(int j=m;j>=t[i];j--)
f[j]=max(f[j],f[j-t[i]]+w[i]);
cout<<f[m];
}