#include <iostream>
#include <cstdio>
#include <algorithm>
#include <string>
#include <cstring>
#include <vector>
#include <cmath>
#include <queue>
#include <stack>
#include <climits>
using namespace std;
int w,v,n;
int a[110],b[110],c[110],dp[110][110][110];
string r[110][110][110];
int main(){
cin>>w>>v>>n;
for(int i=1;i<=n;i++)
cin>>a[i]>>b[i]>>c[i];
for(int i=0;i<=n;i++)
for(int j=0;j<=w;j++)
for(int k=0;k<=v;k++)
r[i][j][k]="";
for(int i=1;i<=n;i++){
for(int j=1;j<=w;j++){
for(int k=1;k<=v;k++){
if(j>=a[i]&&k>=b[i]){
dp[i][j][k]=max(dp[i-1][j][k],dp[i-1][j-a[i]][k-b[i]]+c[i]);
if(dp[i-1][j][k]<dp[i-1][j-a[i]][k-b[i]]+c[i])
r[i][j][k]=r[i-1][j-a[i]][k-b[i]]+(char)(i+'0')+" ";
else
r[i][j][k]=r[i-1][j][k];
}
else{
dp[i][j][k]=dp[i-1][j][k];
r[i][j][k]=r[i-1][j][k];
}
}
}
}
cout<<dp[n][w][v]<<endl;
if(r[n][w][v]!="")
r[n][w][v]=r[n][w][v].substr(0,r[n][w][v].size()-1);
cout<<r[n][w][v];
return 0;
}
/*
f[i][j][k]=max(f[i-1][j][k],f[i-1][j-v[i]][k-w[i]]+c[i]);
f[j][k]=max(f[j][k],f[j-v[i]][k-w[i]]+c[i])
1949
*/