//输入容积和商品数量,输入商品,遍历所有商品,从大到小遍历所有空间,取最大,输出
//main:输入数量和空间,遍历所有商品,从大到小遍历所有空间,取含i和不含i的最大值,输出
#include<iostream>
using namespace std;
const int N=1010;
int v[N],w[N];
int f[N];
int main()
{
int n,m;
cin>>m>>n;
for(int i=1;i<=n;i++)cin>>v[i]>>w[i];
for(int i=1;i<=n;i++)
{
for(int j=m;j>=v[i];j--)
f[j]=max(f[j],f[j-v[i]]+w[i]);//记得加上w[i]才是含i的价值
}
cout<<f[m]<<endl;
return 0;
}