#include
#include<stdio.h>
#include<string.h>
#include
#include
using namespace std;
int main()
{
int index1[103],index3[103][1000],flag=0,total[100];
map<int,string>m;
vector<pair<int,string> > adj[100];
int test,i,op,j;
char exp[17],trans[17];
char a[103][17];
scanf("%d",&test);
for(i=0;i<test;i++)
{
int count5[103]={0};
scanf("%d",&op);
flag=0;
for(j=0;j<op;j++)
{
scanf("%s",&exp);
flag=0;
int len=strlen(exp);
exp[len]=’\0’;
if(exp[0]==‘A’ && exp[4]!=’\0’)
{
int index=4,hash_value=0,count1=1;
while(exp[index]!=’\0’)
{
hash_value=hash_value+(count1*(exp[index]));
trans[count1-1]=exp[index];
count1++;
index++;
}
trans[count1-1]=’\0’;
hash_value=(19hash_value)%101;
if(index1[hash_value]==0)
{
m.insert(pair<int,string>(hash_value,trans)) ;
strcpy(a[hash_value],trans);
index1[hash_value]=1;
}
else if(strcmp(a[hash_value],trans)==0)
{
flag=1;
}
else if(flag==0)
{
int l=0,flag2=0;
while(l<count5[hash_value])
{
if(index3[hash_value][l]!=-1)
{
if(strcmp(a[index3[hash_value][l]],trans)==0)
{
flag2=1;
break;
}
else
l++;
}
else
l++;
}
if(flag2==0)
{
for(int k=1;k<20;k++)
{
int hash_new=(hash_value+(kk)+(23*k)) % 101;
if(index1[hash_new]==0)
{
m.insert(pair<int,string>(hash_new,trans)) ;
strcpy(a[hash_new],trans);
index3[hash_value][count5[hash_value]]=hash_new;
count5[hash_value]++;
index1[hash_new]=1;
break;
}
}
}
}
}
else if(exp[0]=='D')
{
int hash_del=0,index_del=4,count2=1,l=0;
char trans_del[20];
while(exp[index_del]!='\0')
{
hash_del=hash_del+(count2*(exp[index_del]));
trans_del[count2-1]=exp[index_del];
index_del++;
count2++;
}
trans_del[count2-1]='\0';
hash_del=(19*hash_del)%101;
if(strcmp(a[hash_del],trans_del)==0)
{
index1[hash_del]=0;
m.erase(hash_del);
}
else
{
int l=0;
while(l<count5[hash_del])
{
if(strcmp(a[index3[hash_del][l]],trans_del)==0)
{
m.erase(index3[hash_del][l]);
index1[index3[hash_del][l]]=0;
index3[hash_del][l]=-1;
break;
}
l++;
}
}
}
}
map<int,string>::iterator it ;
int count3=0;
vector< pair<int,string> >::iterator r3;
for(it=m.begin();it!=m.end();it++)
{
adj[i].push_back(make_pair(it->first,it->second));
count3++;
index1[it->first]=0;
count5[it->first]=0;
}
total[i]=count3;
m.clear();
}
vector< pair<int,string> >::iterator r4;
ios_base::sync_with_stdio(false);
cin.tie(NULL);
for(i=0;i<test;i++)
{
cout<<total[i];
for(r4=adj[i].begin();r4!=adj[i].end();r4++)
{
cout<<"\n"<<(*r4).first<<":"<<(*r4).second;
}
cout<<"\n";
}
}