#include<stdio.h>
#include<string.h>
#include<iostream>
#include<map>
#include<algorithm>
using namespace std;
struct data
{
int contestant,penalty,solved;
map<int,int>mp1;
int problems[12];
} arr[110];
bool cmp(data lhs,data rhs)
{
if(lhs.solved==rhs.solved)
{
if(lhs.penalty==rhs.penalty)
{
return (lhs.contestant < rhs.contestant);
}
return (lhs.penalty<rhs.penalty);
}
return lhs.solved>rhs.solved;
}
map<int,int>mp;
int main()
{
int test,i,j,tc,tag,a,b,c,d;
char ch,str[50];
scanf("%d",&test);
getchar();
getchar();
for(tc=1; tc<=test; tc++)
{
tag=0;
if(tc>1)
{
puts("");
}
while(gets(str))
{
if(strlen(str)==0)
{
break;
}
sscanf(str,"%d %d %d %c",&a,&b,&c,&ch);
if(mp.find(a)==mp.end())
{
mp[a]=++tag;
}
if(ch=='C')
{
if(arr[mp[a]].mp1.find(b)==arr[mp[a]].mp1.end())
{
arr[mp[a]].mp1[b]=b;
arr[mp[a]].solved+=1;
d=(arr[mp[a]].problems[b])*20;
arr[mp[a]].penalty+=d+c;
}
arr[mp[a]].contestant=a;
}
else if(ch=='I')
{
arr[mp[a]].contestant=a;
arr[mp[a]].problems[b]+=1;
}
else if(ch=='R'||ch=='U'|| ch=='E')
{
arr[mp[a]].contestant=a;
}
}
sort(arr+1,arr+tag+1,cmp);
for(i=1; i<=tag; i++)
{
cout<<arr[i].contestant<<" "<<arr[i].solved<<" "<<arr[i].penalty<<endl;
}
mp.clear();
for(i=0; i<=105; i++)
{
arr[i].mp1.clear();
arr[i].contestant=0;
arr[i].penalty=0;
arr[i].solved=0;
memset(arr[i].problems,0,sizeof(arr[i].problems));
}
}
return 0;
}