#include<bits/stdc++.h>
using namespace std;
#define int long long
int it,N,c1,c2,n;string s1,s2;
struct tr{
int t,c,p;
}w[10005];
struct ty{
int t,c;
}a[10005],d[10005];
int dp[100005];
void init(){
int time[5],sum=0,cnt=0;;
for(int i=0;i<s1.size();i++){
if(s1[i]==':'){
time[cnt]=sum;
cnt++;
sum=0;continue;
}
sum=sum*10+s1[i]-48;
}
time[cnt]=sum;cnt++;
sum=0;
for(int i=0;i<s2.size();i++){
if(s2[i]==':'){
time[cnt]=sum;
cnt++;
sum=0;continue;
}
sum=sum*10+s2[i]-48;
}
time[cnt]=sum;cnt++;
int a=time[2]-time[0],b=time[3]-time[1];
it=a*60+b;
}
signed main(){
// freopen("D://P1833_9.in","r",stdin);
// freopen("D://P1833_9.ou","w",stdout);
cin>>s1>>s2;
init();
cin>>N;
int T,C,P;
for(int i=0;i<N;i++){
cin>>T>>C>>P;
if(P==0){
d[c1].c=C;d[c1].t=T;
c1++;
}
if(P!=0){
w[c2].c=C;w[c2].p=P;w[c2].t=T;
c2++;
}
}
for(int i=0;i<c2;i++){
for(int j=1;j<=w[i].p;j<<=1){
w[i].p-=j;a[n].c=j*w[i].c;a[n].t=j*w[i].t;n++;
}
if(w[i].p>0){
a[n].c=w[i].p*w[i].c;
a[n].t=w[i].p*w[i].t;n++;
}
}
for(int i=0;i<n;i++){
for(int j=it;j>=a[i].t;j--){
if(dp[j]<dp[j-a[i].t]+a[i].c)
dp[j]=dp[j-a[i].t]+a[i].c;
}
}
for(int i=0;i<c1;i++){
for(int j=d[i].t;j<=it;j++){
if(dp[j]<dp[j-d[i].t]+d[i].c){
dp[j]=dp[j-d[i].t]+d[i].c;
}
}
}
cout<<dp[it];
return 0;
}
RT,究竟哪里错了(大悲