#include<iostream>
#include<algorithm>
#include<vector>
#include<string>
#include<cmath>
#include<cstdlib>
#include<map>
#include<cstdlib>
#include<cstring>
#include<functional>
#include<numeric>
#include<sstream>
#define M 1000000009
#define pb push_back
#define vr vector
#define fr(i,to) for(ll i=0;i<((ll)(to));i++)
#define stc(a,b) a(b.begin(),b.end())
using namespace std;
typedef int ll;
int main(){
vr<string> s;
vr<string> d;
vr<string> c;
vr<int> diff;
vr<int> vv;
ll notc,nogg,rem,iv,p,rv,fg=0,sum=0;
ll noc,k=0,nod=0,add;
string st,dt,cd,ks,cc;
cin>>notc;
while(notc--){
cin>>nogg;
noc=nogg-1;
rem=noc/1;
fr(i,noc){
cin>>st;
s.pb(st);
cin>>dt;
d.pb(dt);
cin>>cc;
ks=cc.substr(0,cc.length()-1);
istringstream convert(ks);
convert>>add;
sum+=add;
c.pb(cc);
}
fr(i,noc){
fr(j,noc){
if(s[i]!=d[j])
{
nod+=1;
}
}
iv=nod/1;
diff.pb(iv);
nod=0;
}
fr(i,noc){
if(diff[i]==noc)
{
p=i/1;
rv=p/1;
vv.pb(rv);
}
}
rem-=1;
while(rem>0){
fr(i,noc){
if(s[i]==d[p])
{
p=i/1;
rv=p/1;
vv.pb(rv);
}
}
rem-=1;
}
fr(i,noc){
fg=vv[i]/1;
cout<<s[fg]<<d[fg]<<c[fg]<<endl;
}
cout<<sum<<"$"<<endl;
}
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPGFsZ29yaXRobT4KI2luY2x1ZGU8dmVjdG9yPgojaW5jbHVkZTxzdHJpbmc+CiNpbmNsdWRlPGNtYXRoPgojaW5jbHVkZTxjc3RkbGliPgojaW5jbHVkZTxtYXA+CiNpbmNsdWRlPGNzdGRsaWI+CiNpbmNsdWRlPGNzdHJpbmc+CiNpbmNsdWRlPGZ1bmN0aW9uYWw+CiNpbmNsdWRlPG51bWVyaWM+CiNpbmNsdWRlPHNzdHJlYW0+CgoKI2RlZmluZSBNIDEwMDAwMDAwMDkKI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSB2ciB2ZWN0b3IKI2RlZmluZSBmcihpLHRvKSBmb3IobGwgaT0wO2k8KChsbCkodG8pKTtpKyspCiNkZWZpbmUgc3RjKGEsYikgYShiLmJlZ2luKCksYi5lbmQoKSkKCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp0eXBlZGVmICBpbnQgbGw7CgoKaW50IG1haW4oKXsKICAgdnI8c3RyaW5nPiBzOwogICB2cjxzdHJpbmc+IGQ7CiAgIHZyPHN0cmluZz4gYzsKICAgdnI8aW50PiBkaWZmOwogICB2cjxpbnQ+IHZ2OwogICBsbCBub3RjLG5vZ2cscmVtLGl2LHAscnYsZmc9MCxzdW09MDsKICAgbGwgbm9jLGs9MCxub2Q9MCxhZGQ7CiAgIHN0cmluZyBzdCxkdCxjZCxrcyxjYzsKCgogICBjaW4+Pm5vdGM7CiAgIHdoaWxlKG5vdGMtLSl7CiAgICAgY2luPj5ub2dnOwogICAgIG5vYz1ub2dnLTE7CgkgcmVtPW5vYy8xOwoJIGZyKGksbm9jKXsKCSAgICBjaW4+PnN0OwoJCXMucGIoc3QpOwoJCWNpbj4+ZHQ7CgkJZC5wYihkdCk7CgkJY2luPj5jYzsKCQlrcz1jYy5zdWJzdHIoMCxjYy5sZW5ndGgoKS0xKTsKCQlpc3RyaW5nc3RyZWFtIGNvbnZlcnQoa3MpOwoJCWNvbnZlcnQ+PmFkZDsKCQlzdW0rPWFkZDsKICAgICAgICBjLnBiKGNjKTsKCSB9CgkgZnIoaSxub2MpewoJICBmcihqLG5vYyl7CgkgICAgaWYoc1tpXSE9ZFtqXSkKCQkgewoJCSAgIG5vZCs9MTsKCSAgICB9CgkgIH0KCSAgaXY9bm9kLzE7CgkgIGRpZmYucGIoaXYpOwoJICBub2Q9MDsKCSB9CgkgZnIoaSxub2MpewoJCSAgICAgaWYoZGlmZltpXT09bm9jKQoJCQkgICB7CgkJCSAgIHA9aS8xOwoJCQkgICBydj1wLzE7CgkJCSAgIHZ2LnBiKHJ2KTsKCQkJICAgfQoJCSAgfQoJCSAgcmVtLT0xOwogICAgCXdoaWxlKHJlbT4wKXsKCQkgIGZyKGksbm9jKXsKCQkgICAgICBpZihzW2ldPT1kW3BdKQoJCSAgICAgIHsKCQkJICBwPWkvMTsKCQkJICBydj1wLzE7CgkJCSAgdnYucGIocnYpOwoJCQkgIH0KCQl9CgkJcmVtLT0xOwoJCX0KCQlmcihpLG5vYyl7CgkJICAgIGZnPXZ2W2ldLzE7CgkJICAgIGNvdXQ8PHNbZmddPDxkW2ZnXTw8Y1tmZ108PGVuZGw7CgkJfQoJCWNvdXQ8PHN1bTw8IiQiPDxlbmRsOwoKfQoKfQo=