毕竟我在一本通是通过了的
#include <bits/stdc++.h>
using namespace std;
struct YAO{
long long timen,jiazhi;
};
YAO a[100];
long long shijian,keshu,f[10000000];
int main()
{
cin>>shijian>>keshu;
for(long long i=0;i<keshu;i++)
cin>>a[i].timen>>a[i].jiazhi;
for(long long i=0;i<keshu;i++){ //枚举f[i]
for(long long j=a[i].timen;j<=shijian;j++) //在枚举f[i]的基础下枚举a[j],决定a[j]要不要放
f[j]=max(f[j],f[j-a[i].timen]+a[i].jiazhi);}
cout<<f[shijian];
return 0;
}