#include<bits/stdc++.h>
using namespace std;
const int N=2e2+10;
int dp[N][N][N];
int last[N][N][N];
int a[N],b[N],c[N];
int m,v,n;
signed main(){
cin>>m>>v>>n;
for (int i=1;i<=n;i++) cin>>a[i]>>b[i]>>c[i];
for (int i=1;i<=n;i++){
for (int j=0;j<=m;j++){
for (int k=0;k<=v;k++){
dp[i][j][k]=dp[i-1][j][k];
if (j>=a[i] && k>=b[i]){
if (dp[i][j][k]<dp[i-1][j-a[i]][k-b[i]]+c[i]){
dp[i][j][k]=dp[i-1][j-a[i]][k-b[i]]+c[i];
last[i][j][k]=i;
}
}
}
}
}
int maxn=-1,w,e,r;
for (int i=0;i<=m;i++){
for (int j=0;j<=v;j++){
maxn=max(maxn,dp[n][i][j]);
w=n,e=i,r=j;
}
}
cout<<maxn;
stack <int> s;
while (w){
if (last[w][e][r]!=0){
s.push(last[w][e][r]);
int e2=e;
e-=a[last[w][e][r]];
r-=b[last[w][e2][r]];
w--;
}
else w--;
}
cout<<'\n';
while (!s.empty()){
cout<<s.top()<<' ';
s.pop();
}
return 0;
}
记录