#include <bits/stdc++.h>
using namespace std;
int a[120],b[120],c[120];
int dp[300][300],dp2[201][201][101];
int main(){
int m,v,n;
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=m;j>=a[i];--j){
for(int k=v;k>=b[i];--k){
if(dp[j][k]<dp[j-a[i]][k-b[i]]+c[i]){
dp[j][k]=max(dp[j][k],dp[j-a[i]][k-b[i]]+c[i]);
for(int l=1;l<=n;++l){
dp2[j][k][l]=dp2[j-a[i]][k-b[i]][l];
}
dp2[j][k][i]=1;
}else if(dp[j][k]==dp[j-a[i]][k-b[i]]+c[i]){
bool flag=1;
for(int l=1;l<=n;++l){
if( dp2[j-a[i]][k-b[i]][l]>dp2[j][k][l]){
//dp2[j-a[i]][k-b[i]][l];
flag=0;
break;
}else{
break;
}
}
if(!flag){
for(int l=1;l<=n;++l){
dp2[j][k][l]=dp2[j-a[i]][k-b[i]][l];
}
}
dp2[j][k][i]=1;
}
}
}
}
cout<<dp[m][v]<<endl;
for(int i=1;i<=n;++i){
if(dp2[m][v][i]){
cout<<i<<" ";
}
}
return 0;
https://www.luogu.com.cn/problem/P1759