#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
struct Bill{
char name[22];
char time[20];
char type[10];
}bill[1010];
int cent[24];
bool cmp(Bill a,Bill b){
if(strcmp(a.name,b.name)!=0) return strcmp(a.name,b.name)<0;
else return strcmp(a.time,b.time)<0;
}
bool judgeExist(int s,int e){
for(int i=s;i<e-1;i++){
if(strcmp(bill[i].type,"on-line")==0){
for(int j=i+1;j<e;j++){
if(strcmp(bill[j].type,"off-line")==0){
return true;
}
}
}
}
return false;
}
int calPeriod(char st[20],char et[20]){
int day=(et[0]-'0')*10+(et[1]-'0')-(st[0]-'0')*10-(st[1]-'0');
int hour=(et[3]-'0')*10+(et[4]-'0')-(st[3]-'0')*10-(st[4]-'0');
int minute=(et[6]-'0')*10+(et[7]-'0')-(st[6]-'0')*10-(st[7]-'0');
return day*24*60+hour*60+minute;
}
int calMoney(char st[20],char et[20]){
int money=0;
int day=(et[0]-'0')*10+(et[1]-'0')-(st[0]-'0')*10-(st[1]-'0');
if(day==0){
int hour1=(st[3]-'0')*10+(st[4]-'0');
int minute1=(st[6]-'0')*10+(st[7]-'0');
int hour2=(et[3]-'0')*10+(et[4]-'0');
int minute2=(et[6]-'0')*10+(et[7]-'0');
if(hour1!=hour2){
money+=cent[hour1]*(60-minute1);
for(int j=hour1+1;j<hour2;j++){
money+=cent[j]*60;
}
money+=cent[hour2]*minute2;
}else{
money+=cent[hour1]*(minute2-minute1);
}
}else{
int hour=(st[3]-'0')*10+(st[4]-'0');
int minute=(st[6]-'0')*10+(st[7]-'0');
money+=cent[hour]*(60-minute);
for(int j=hour+1;j<24;j++){
money+=cent[j]*60;
}
hour=(et[3]-'0')*10+(et[4]-'0');
minute=(et[6]-'0')*10+(et[7]-'0');
for(int j=0;j<hour;j++){
money+=cent[j]*60;
}
money+=cent[hour]*minute;
int temp=0;
for(int j=0;j<24;j++){
temp+=cent[j]*60;
}
money+=temp*(day-1);
}
return money;
}
void printInform(int s,int e){
printf("%s %c%c\n",bill[s].name,bill[s].time[0],bill[s].time[1]);
char st[20],et[20];
int period=0,money=0,total=0;
for(int i=s;i<e-1;i++){
if(strcmp(bill[i].type,"on-line")==0 && strcmp(bill[i+1].type,"off-line")==0){
strcpy(st,bill[i].time+3);
strcpy(et,bill[i+1].time+3);
printf("%s %s ",st,et);
period=calPeriod(st,et);
printf("%d ",period);
money=calMoney(st,et);
total+=money;
printf("$%.2f\n",money/100.0);
}
}
printf("Total amount: $%.2f\n",total/100.0);
}
int main()
{
for(int i=0;i<24;i++){
scanf("%d",¢[i]);
}
int n;
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%s %s %s",bill[i].name,bill[i].time,bill[i].type);
}
sort(bill,bill+n,cmp);
int len=1,record[1010]={0};
char temp[22];
strcpy(temp,bill[0].name);
record[len-1]=1;
for(int i=1;i<n;i++){
if(strcmp(temp,bill[i].name)==0){
record[len-1]++;
}else{
len++;
record[len-1]++;
strcpy(temp,bill[i].name);
}
}
int index=0;
for(int i=0;i<len;i++){
if(judgeExist(index,index+record[i])){
printInform(index,index+record[i]);
}
index+=record[i];
}
return 0;
}