/*二维费用背包裸题*/
#include<iostream>
#include<cstdio>
#define maxn 1010
int n,m1,m2,w1[maxn],w2[maxn],v[maxn],dp[maxn][maxn];
using namespace std;
int main(){
scanf("%d%d%d",&m1,&m2,&n);//最大体积,最大重量
for(int i=1;i<=n;i++)scanf("%d%d%d",&v[i],&w1[i],&w2[i]);
for(int i=1;i<=n;i++){
for(int j=m1;j>=w1[i];j--){
for(int k=m2;k>=w2[i];k--){
dp[j][k]=max(dp[j][k],dp[j-w1[i]][k-w2[i]]+v[i]);
}
}
}
printf("%d",dp[m1][m2]);
}