#include<bits/stdc++.h>
using namespace std;
string a,b;
int n,v,f[1010]={0};
struct obj{
int m,c,w;
}sz[10010];
void p01p(int c,int w){
for(int i=v;i>=c;i--){
f[i]=max(f[i],f[i-c]+w);
}
return;
}
void p02p(int c,int w){
for(int i=c;i<=v;i++){
f[i]=max(f[i],f[i-c]+w);
}
}
void p03p(int c,int w,int num){
if(num*c>=v){
p02p(c,w);
}
else{
int t=1,num1=num;
while(t<num1){
p01p(t*c,t*w);
num1-=t;
t*=2;
}
p01p(num1*c,num1*w);
}
}
int main(){
int x1,a1,x2,a2;
scanf("%d:%d %d:%d",&x1,&a1,&x2,&a2);
if(a1>a2){
a2+=60;
x2--;
}
cin>>n;
v=(x2-x1)*60+a2-a1;
int e,d,g;
for(int i=1;i<=n;i++){
cin>>e>>d>>g;
if(g==1) p01p(e,d);
if(g==0) p02p(e,d);
else p03p(e,d,g);
}
cout<<f[v];
}