#include<iostream>
#include<map>
using namespace std;
int main()
{
int t;
cin>>t;
while(t--)
{
string key[101];
for(int i=0;i<101;i++)
{
key[i]="";
}
map<string,int> m;
map<int,string> p;
int o;
cin>>o;
while(o--)
{
string w;
cin>>w;
if(w==""||w.length()>19||w.length()<=4)
{
continue;
}
string op=w.substr(0,3);
string s=w.substr(4);
int n=s.length();
int h=0;
for(int i=0;i<n;i++)
{
h+=(i+1)*int(s[i]);
}
h*=19;
h=h%101;
if(op=="ADD")
{
for(int j=0;j<=19;j++)
{
int ht=(h+j*j+23*j)%101;
if(key[ht]=="")
{
if(m.find(s)==m.end())
{
m[s]=ht;
p[ht]=s;
key[ht]=s;
break;
}
}
}
}
else if(op=="DEL")
{
for(int j=0;j<=19;j++)
{
int ht=(h+j*j+23*j)%101;
if(key[ht]!="")
{
if(m.find(s)!=m.end())
{
//m[s]=ht;
m.erase(s);
p.erase(ht);
key[ht]="";
break;
}
}
}
}
}
if(p.size()>0)
{
cout<<p.size()<<endl;
for(map<int,string> :: iterator it=p.begin();it!=p.end();it++)
{
cout<<it->first<<":"<<it->second<<endl;
}
}
}
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPG1hcD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKaW50IG1haW4oKQp7CglpbnQgdDsKCWNpbj4+dDsKCXdoaWxlKHQtLSkKCXsKCSAgc3RyaW5nIGtleVsxMDFdOwoJICBmb3IoaW50IGk9MDtpPDEwMTtpKyspCgkgIHsKCSAgCWtleVtpXT0iIjsKCSAgfQoJICBtYXA8c3RyaW5nLGludD4gbTsKCSAgbWFwPGludCxzdHJpbmc+IHA7CgkgIGludCBvOwoJCWNpbj4+bzsKCQl3aGlsZShvLS0pCgkgICB7CgkgICAJICAgIHN0cmluZyB3OwoJICAgCSAgICBjaW4+Pnc7CgkgICAJICAgIGlmKHc9PSIifHx3Lmxlbmd0aCgpPjE5fHx3Lmxlbmd0aCgpPD00KQoJICAgCSAgICB7CgkgICAJICAgIAljb250aW51ZTsKCSAgIAkgICAgfQogICAgICAgICAgICAKCSAgICAgICAgc3RyaW5nIG9wPXcuc3Vic3RyKDAsMyk7CgkgICAgICAgIHN0cmluZyBzPXcuc3Vic3RyKDQpOwoJICAgICAgICBpbnQgbj1zLmxlbmd0aCgpOyAgIAkgICAKCQkJaW50IGg9MDsKCSAgICAgICAgIGZvcihpbnQgaT0wO2k8bjtpKyspCgkgICAgICAgICB7CgkgICAJICAgICAgIGgrPShpKzEpKmludChzW2ldKTsKCSAgICAgICAgIH0KCSAgICAgICAgIGgqPTE5OwoJICAgICAgICAgaD1oJTEwMTsKCSAgICAgICAgIGlmKG9wPT0iQUREIikKCSAgICAgICAgIHsKCSAgIAkgICAgICAgIGZvcihpbnQgaj0wO2o8PTE5O2orKykKCSAgIAkgICAgICAgICAgewoJICAgCSAgICAgICAgICAJICAgaW50IGh0PShoK2oqaisyMypqKSUxMDE7CgkgICAJICAgCSAgICAgICAgICAgIAoJICAgCSAgIAkgICAgICAgICAgIGlmKGtleVtodF09PSIiKQoJICAgCSAgIAkgICAgICAgICAgIHsKCSAgIAkgICAJICAgICAgICAgICAJICBpZihtLmZpbmQocyk9PW0uZW5kKCkpCgkgICAJICAgCSAgICAgICAgICAgCSAgewoJICAgCSAgIAkgICAgICAgICAgIAkgIAkgbVtzXT1odDsKCSAgIAkgICAJICAgICAgICAgICAJICAJIHBbaHRdPXM7CgkgICAJICAgCSAgICAgICAgICAgCSAgICAga2V5W2h0XT1zOwoJICAgCSAgIAkgICAgICAgICAJICAgICBicmVhazsKCSAgIAkgICAJICAgICAgICAgICAgIH0KCSAgIAkgICAJICAgICAgICAgICB9CgkgICAJICAgICAgICAgfSAgICAgICAKCSAgICAgICAgIH0KCQkJZWxzZSBpZihvcD09IkRFTCIpCgkgICAgIAl7CgkgICAJICAgICAJZm9yKGludCBqPTA7ajw9MTk7aisrKQoJICAgCSAgICAgICAgewoJICAgCSAgICAgCSAgaW50IGh0PShoK2oqaisyMypqKSUxMDE7CgkgICAJICAgICAJICBpZihrZXlbaHRdIT0iIikKCSAgIAkgICAJICAgICAgICAgICB7CgkgICAJICAgCSAgICAgICAgICAgCSAgaWYobS5maW5kKHMpIT1tLmVuZCgpKQoJICAgCSAgIAkgICAgICAgICAgIAkgIHsKCSAgIAkgICAJICAgICAgICAgICAJICAJIC8vbVtzXT1odDsKCSAgIAkgICAJICAgICAgICAgICAJICAJIG0uZXJhc2Uocyk7CgkgICAJICAgCSAgICAgICAgICAgCSAgCSBwLmVyYXNlKGh0KTsKCSAgIAkgICAJICAgICAgICAgICAJICAgICBrZXlbaHRdPSIiOwoJICAgCSAgIAkgICAgICAgICAJICAgICBicmVhazsKCSAgIAkgICAJICAgICAgICAgICAgIH0KCSAgIAkgICAJICAgICAgICAgICB9CgkgICAJICAgICAgICB9CgkgICAJICAgIH0KCQkKCQkJIAogICAgICAgfQogICAgICAgaWYocC5zaXplKCk+MCkKICAgICAgIAl7CiAgICAgICAJY291dDw8cC5zaXplKCk8PGVuZGw7CgkgICAgICBmb3IobWFwPGludCxzdHJpbmc+IDo6IGl0ZXJhdG9yIGl0PXAuYmVnaW4oKTtpdCE9cC5lbmQoKTtpdCsrKQoJICAgICAgewoJCSAgICBjb3V0PDxpdC0+Zmlyc3Q8PCI6Ijw8aXQtPnNlY29uZDw8ZW5kbDsKCSAgICAgIH0KCSAgfQoJCiAgICB9Cn0=