```cpp
#include<bits/stdc++.h>
using namespace std;
int n,m;
int w[1000000],v[1000000];
int a[30][1000000];
int main(){
cin>>n>>m;
for(int i=1;i<=m;i++){
cin>>w[i]>>v[i];
}
for(int i=1;i<=m;i++){
for(int j=1;j<=n;j++){
a[i][j]=a[i][j-1];//将a[i][j-1]改为a[i-1][j]
if(j>=v[i]){//将v[i]改为w[i]
a[i][j]=max(a[i][j],a[i][j-w[i]]+(v[i]*w[i]));//将a[i][j-w[i]]改为a[i-1][j-w[i]]即可
}
}
}
cout<<a[m][n]<<endl;
return 0;
}
```
by naijgnorgnahz @ 2023-09-11 19:37:12