/*其实就是一个优先的问题,直接模拟的
*/
#include<cstdio>
#include<cstring>#include<cstdlib>
int cmp(const void *a,const void *b)
{
return *(int *)a-*(int *)b;
}
int main()
{
int num[40],str[40][1100];
while(scanf("%d %d %d",&num[0],&num[1],&num[2])==3)
{
memset(str,0,sizeof(str));
if(!num[0]&&!num[1]&&!num[2]) break;
char s[10];
int res = 0;
while(1)
{
scanf("%s",s);
if(s[0]=='#') break;
int time = ((s[0]-'0')*10+(s[1]-'0'))*60+(s[3]-'0')*10+(s[4]-'0');
int p,flag;
scanf("%d",&p); //renshu
if(p<=2) flag = 0;
else if(p<=4) flag = 1;
else flag = 2;
qsort(str[flag],num[flag],sizeof(str[flag][0]),cmp);
if(time>=str[flag][0]+30)
{
res += p;
str[flag][0] = time;
}
else if(time >= str[flag][0])
{
res += p;
str[flag][0] += 30;
}
}
printf("%d\n",res);
}
return 0;
}