#include <bits/stdc++.h>
using namespace std;
int start_h,end_h;
int start_m,end_m;
char tmp;
int n;
const int M=10000+5;
int t[M],c[M],p[M];
int dp[3][M];
int sum_time;
string start;
string end1;
int main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
cin>>start;
cin>>end1;
for(int i=0;i<start.size();i++){
if(start[i]==':'){
start_h=stoi(start.substr(0,i));
start_m=stoi(start.substr(i+1));
}
}
for(int i=0;i<end1.size();i++){
if(end1[i]==':'){
end_h=stoi(end1.substr(0,i));
end_m=stoi(end1.substr(i+1));
}
}
cin>>n;
for(int i=1;i<=n;i++){
cin>>t[i]>>c[i]>>p[i];
}
int olda=1;
int new1=0;
sum_time=60*end_h+end_m-60*start_h-start_m;
memset(dp, 0, sizeof(dp));
for(int i=1;i<=n;i++){
swap(olda,new1);
if(p[i]==0){
for(int j=0;j<=sum_time;j++){
for(int cnt=0; ;cnt++){
if(j-t[i]*cnt<0){
break;
}
dp[new1][j]=max(dp[olda][j-cnt*t[i]]+cnt*c[i],dp[olda][j]);
}
}
} else {
for(int j=0;j<=sum_time;j++){
for(int cnt=0;cnt<=p[i];cnt++){
if(j-t[i]*cnt<0){
break;
}
dp[new1][j]=max(dp[olda][j-cnt*t[i]]+cnt*c[i],dp[olda][j]);
}
}
}
}
cout<<dp[new1][sum_time]<<"\n";
return 0;
}
WA了三个点。