#include <iostream>
using namespace std;
int eraf(){
#include <cstdio>
int a,b,c,d;
scanf("%d:%d %d:%d",&a,&b,&c,&d);
b+=a*60,d+=c*60;
return d-b;
}
int main(){
int m,n,f[10001]={};
m=eraf();
cin>>n;
for(int i=1;i<=n;i++){
int t,c,p;
cin>>t>>c>>p;
if(p==0){
for(int j=t;j<=m;j++){
f[j]=max(f[j],f[j-t]+c);
}
}else if(p==1){
for(int j=m;j>=t;j--){
f[j]=max(f[j],f[j-t]+c);
}
}else{
for(int d=0;d<=31;d++){
if(p&(1<<d)){
int td=t*(1<<d),cd=c*(1<<d);
for(int j=m;j>=td;j--){
f[j]=max(f[j],f[j-td]+cd);
}
}
}
}
}
cout<<f[m]<<endl;
return 0;
}