#include<bits/stdc++.h>
using namespace std;
long long c[500500],p[500500],t[500050],n,tt,t11,t12,t21,t22;
long long cnt[500050],dp[500100];
char cc;
struct nd{
long long w,tim;
};
vector<nd>v[500050];
int main(){
cin>>t11>>cc>>t12>>t21>>cc>>t22;
cin>>n;
tt=(t21-t11+24)%24*60+t22-t12;
for(long long i=1;i<=n;i++){
cin>>t[i]>>c[i]>>p[i];
}
for(long long i=1;i<=n;i++){
if(p[i]){
long long sum=0;
long long base=1;
while(base<=p[i]){
v[i].push_back({base*c[i],base*t[i]});
p[i]-=base;
base<<=1;
sum++;
}
v[i].push_back({p[i]*c[i],p[i]*t[i]});
cnt[i]=sum;
}
}
dp[0]=0;
for(long long i=1;i<=n;i++){
if(p[i]){
for(auto x:v[i]){
for(long long j=tt;j>=x.tim;j--){
dp[j]=max(dp[j],dp[j-x.tim]+x.w);
}
}
}
else{
for(long long j=t[i];j<=tt;j++){
dp[j]=max(dp[j],dp[j-t[i]]+c[i]);
}
}
}
cout<<dp[tt];
return 0;
}