#include <bits/stdc++.h>
#define maxn 10003
using namespace std;
struct Data {
int id,
sex,
score,
last,
tmp,
cnt;
string rank;
}stu[maxn];
int n, m;
int a[] = {0, 31, 28, 31, 30, 31, 30, 31, 31 ,30, 31 ,30, 31};
map<int, int> get_index;
int sec(int h, int m, int s) {
return h * 3600 + m * 60 + s;
}
int sec(int mon, int d, int h, int min, int s) {
int day = 0;
for (int i = 1; i < mon; i++){
day += a[i];
}
day += d - 1;
return day * sec(24, 0, 0) + sec(h, min, s);
}
bool cmp(Data x, Data y) {
return x.id < y.id;
}
int main() {
ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
cin >> n;
for (int i = 0; i < n; i++) {
int id, x, y;
char MF, PF;
string time;
cin >> id >> MF >> x >> time >> PF >> y >> stu[i].tmp;
stu[i].id = id;
get_index[id] = i;
stu[i].score += x + y + (PF == 'P'?10:0);
stu[i].sex = (MF == 'M'?1:0);
int a, b;
sscanf(time.c_str(), "%d\'%d\"", &a, &b);
int s = sec(0, a, b);
if (MF == 'M') {
if (s <= sec(0, 12, 30)) stu[i].score += 20;
else if (s <= sec(0, 13, 0)) stu[i].score += 18;
else if (s <= sec(0, 13, 30)) stu[i].score += 16;
else if (s <= sec(0, 14, 0)) stu[i].score += 14;
else if (s <= sec(0, 14, 30)) stu[i].score += 12;
else if (s <= sec(0, 15, 10)) stu[i].score += 10;
else if (s <= sec(0, 15, 50)) stu[i].score += 8;
else if (s <= sec(0, 16, 30)) stu[i].score += 6;
else if (s <= sec(0, 17, 10)) stu[i].score += 4;
else if (s <= sec(0, 18, 0)) stu[i].score += 2;
}
else{
if (s <= sec(0, 6, 40)) stu[i].score += 20;
else if (s <= sec(0, 6, 57)) stu[i].score += 18;
else if (s <= sec(0, 7, 14)) stu[i].score += 16;
else if (s <= sec(0, 7, 31)) stu[i].score += 14;
else if (s <= sec(0, 7, 50)) stu[i].score += 12;
else if (s <= sec(0, 8, 5)) stu[i].score += 10;
else if (s <= sec(0, 8, 20)) stu[i].score += 8;
else if (s <= sec(0, 8, 35)) stu[i].score += 6;
else if (s <= sec(0, 8, 50)) stu[i].score += 4;
else if (s <= sec(0, 9, 0)) stu[i].score += 2;
}
}
cin >> m;
for (int j = 0; j < m; j++) {
string date, start, end, time;
double dis;
int id, x;
cin >> date >> id >> start >> end >> dis >> time >> x;
dis *= 1000.0;
int i = get_index[id];
if (stu[i].sex == 1){
if (dis < 3000.0) continue;
}
else {
if (dis < 1500.0) continue;
}
int mon2, day2, h2, m2, s2;
sscanf(end.c_str(), "%d:%d:%d", &h2, &m2, &s2);
mon2 = (date[4] - '0') * 10 + date[5] - '0';
day2 = (date[6] - '0') * 10 + date[7] - '0';
cout << mon2<<day2 << endl;
int mon1, day1, h1, m1, s1;
sscanf(start.c_str(), "%d:%d:%d", &h1, &m1, &s1);
if (sec(h1, m1, s1) > sec(h1, m2, s2)) {
if (day2 == 1) {
mon1 = mon2 - 1;
day1 = a[mon2];
}
else {
mon1 = mon2;
day1 = day2 - 1;
}
}
double v = dis / (sec(mon2, day2, h2, m2, s2) - sec(mon1, day1, h1, m1, s1));
if (!(v >= 2.0 && v <= 5.0)) continue;
int a, b;
sscanf(time.c_str(), "%d\'%d\"", &a, &b);
if (!(sec(0, a, b) <= sec(0, 4, 30))) continue;
if (dis / (double)x > 1.5) continue;
if (sec(mon1, day1, h1, m1, s1) - stu[i].last < sec(6, 0, 0)) continue;
stu[i].cnt++;
stu[i].last = sec(mon2, day2, h2, m2, s2);
}
for (int i = 0; i < n; i++) {
if (stu[i].cnt >= 21) stu[i].score += 10;
else if (stu[i].cnt >= 19) stu[i].score += 9;
else if (stu[i].cnt >= 17) stu[i].score += 8;
else if (stu[i].cnt >= 14) stu[i].score += 7;
else if (stu[i].cnt >= 11) stu[i].score += 6;
else if (stu[i].cnt >= 7) stu[i].score += 4;
else if (stu[i].cnt >= 3) stu[i].score += 2;
}
for (int i = 0; i < n; i++) {
stu[i].cnt += stu[i].tmp;
if (stu[i].cnt >= 18) stu[i].score += 5;
else if (stu[i].cnt >= 15) stu[i].score += 4;
else if (stu[i].cnt >= 12) stu[i].score += 3;
else if (stu[i].cnt >= 9) stu[i].score += 2;
else if (stu[i].cnt >= 6) stu[i].score += 1;
}
for (int i = 0; i < n; i++) {
if (stu[i].score >= 95) stu[i].rank = "A";
else if (stu[i].score >= 90) stu[i].rank = "A-";
else if (stu[i].score >= 85) stu[i].rank = "B+";
else if (stu[i].score >= 80) stu[i].rank = "B";
else if (stu[i].score >= 77) stu[i].rank = "B-";
else if (stu[i].score >= 73) stu[i].rank = "C+";
else if (stu[i].score >= 70) stu[i].rank = "C";
else if (stu[i].score >= 67) stu[i].rank = "C-";
else if (stu[i].score >= 63) stu[i].rank = "D+";
else if (stu[i].score >= 60) stu[i].rank = "D";
else if (stu[i].score >= 0) stu[i].rank = "F";
}
sort(stu, stu + n, cmp);
for (int i = 0; i < n; i++) {
cout << stu[i].id << " " << stu[i].score << " " << stu[i].rank << "\n";
}
return 0;
}