- #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=