프로그래밍 대회의 순위표를 만드는 프로그램을 작성한다. 참가 팀 목록과, 팀들이 제출한 모든 풀이를 기록한 로그가 주어진다.
채점은 다음 규칙을 따른다.
총 시간이 같을 때의 세부 동점 처리 절차는 이 문제에서 구현하지 않는다. 대신, 맞힌 문제 수와 총 시간이 모두 같은 팀이 둘 이상이면 이들에게 같은 순위를 부여하고 이름의 알파벳 순으로 나열한다.
팀의 순위 r은 정확히 r−1개 팀이 더 좋은 성적을 냈음을 뜻하므로, 동점이 발생하면 순위는 건너뛴다. 예를 들어 상위 두 팀의 맞힌 문제 수와 총 시간이 같다면 두 팀 모두 순위 1을 받고, 그다음 팀은 순위 3을 받는다. 이때 순위 2를 받는 팀은 없다.
마지막으로, 같은 팀이 같은 문제에서 이미 정답으로 처리받은 뒤에 낸 오답 제출에는 벌점을 매기지 않는다.
첫째 줄에 시나리오의 개수가 주어진다.
각 시나리오는 팀의 수 n(1≤n≤20)이 적힌 줄로 시작하고, 이어지는 n개의 줄에 팀들의 서로 다른 이름이 알파벳 순으로 주어진다. 팀 이름은 영문자와 숫자로만 이루어진 길이 8 이하의 한 단어이다.
그다음 줄에는 문제의 수 k와 제출된 풀이의 수 m이 주어진다(1≤k<10, 0≤m≤2000). 이어지는 m개의 줄은 각각 하나의 제출을 problem time correctness team 형식으로 나타낸다. 여기서 1≤problem≤k는 문제 번호, 0≤time<300은 대회 시작 이후 경과한 시간(분), correctness는 Yes 또는 No, team은 제출한 팀의 이름이다. 제출들은 시간 순으로 정렬되어 있다.
각 시나리오마다 참가한 모든 팀을 담은 순위표를 출력한다. 각 줄의 형식은 rank. team solved time이며, rank는 순위, team은 팀 이름, solved는 맞힌 문제 수, time은 총 시간이다.
네 항목은 한 칸의 공백으로 구분하며, 고정 너비를 사용한다. 순위는 너비 2, 팀 이름은 너비 8, 맞힌 문제 수는 너비 1, 총 시간은 너비 4이다. 이름은 왼쪽 정렬, 숫자는 오른쪽 정렬한다(예제 출력 참고).
서로 다른 시나리오의 순위표는 빈 줄로 구분한다.