/*"The Woods are lovely dark and deep,
But i have promises to keep,
Miles to go before i sleep and Miles to go before i Sleep"
*/
#include<stdio.h>
#include<set>
#include<iostream>
#include<stack>
#include<math.h>
#include<vector>
#include<string.h>
#include<algorithm>
#define pb(n) push_front(n)
#define M(ch) memset(ch,0,sizeof(ch))
unsigned long long mod=1000000007;
using namespace std;
char ch[1000009];
int t;
int check[1000009];
int main()
{
char replace[100][2];
cin>>t;
while(t--)
{
M(ch);
M(replace);
M(check);
int pos,n,len,flag;
flag=0;
cin>>n;
for(int i=0;i<n;i++)
{
cin>>replace[i][0];
cin>>replace[i][1];
}
cin>>ch;
len=strlen(ch);
if(n)
{
for(int i=0;i<len;i++)
{
for(int j=0;j<n;j++)
{
if((ch[i]==replace[j][0])and(check[i]==0))
{
ch[i]=replace[j][1];
check[i]=1;
//if(replace[j][i]=='.')
//flag=1;
//break;
}
}
}
}
int count=0;
char *ptr=NULL;
ptr=strchr(ch,'.');
if(ptr!=NULL)
{
pos=ptr-&ch[0]; //POSITION AT WHICH THE ' . ' IS PRESENT
//cout<<"Point found at "<<pos<<endl;
for(int i=len-1;i>=pos;i--)
{
if(ch[i]!='0')
{
//flag=1;
break;
}
else if(ch[i]=='0')
{
count++;
ch[i]='\0';
}
}
if(count+1==len-pos)
ch[pos]=0;
}
//cout<<"Count="<<count<<endl<<"Len-pos="<<len-pos<<endl;
//if(flag)
{
/*int tmp=len-1;
for(tmp;ch[tmp]=='0';)
{
ch[tmp]=0;
tmp-=1;
}*/
int tmp=0;
for(tmp=0;ch[tmp]=='0';)
{
tmp++;
}
char *q=&ch[tmp];
if(ch[tmp]!=0)
cout<<q<<endl;
else
cout<<"0\n";
}
/*else
{
double ans;
//cout<<ch<<endl;
ans=atof(ch);
cout<<ans<<endl;
}/*
/*/
}
//system("pause");
return 0;
}
LyoiVGhlIFdvb2RzIGFyZSBsb3ZlbHkgZGFyayBhbmQgZGVlcCwKQnV0IGkgaGF2ZSBwcm9taXNlcyB0byBrZWVwLApNaWxlcyB0byBnbyBiZWZvcmUgaSBzbGVlcCBhbmQgTWlsZXMgdG8gZ28gYmVmb3JlIGkgU2xlZXAiCiovCiNpbmNsdWRlPHN0ZGlvLmg+CiNpbmNsdWRlPHNldD4KI2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPHN0YWNrPgojaW5jbHVkZTxtYXRoLmg+CiNpbmNsdWRlPHZlY3Rvcj4KI2luY2x1ZGU8c3RyaW5nLmg+CiNpbmNsdWRlPGFsZ29yaXRobT4KI2RlZmluZSBwYihuKSBwdXNoX2Zyb250KG4pCiNkZWZpbmUgTShjaCkgbWVtc2V0KGNoLDAsc2l6ZW9mKGNoKSkKdW5zaWduZWQgbG9uZyBsb25nIG1vZD0xMDAwMDAwMDA3Owp1c2luZyBuYW1lc3BhY2Ugc3RkOwpjaGFyIGNoWzEwMDAwMDldOwppbnQgdDsKaW50IGNoZWNrWzEwMDAwMDldOwogaW50IG1haW4oKQogewoJY2hhciByZXBsYWNlWzEwMF1bMl07CgljaW4+PnQ7CiAJd2hpbGUodC0tKQoJewogCQlNKGNoKTsKIAkJTShyZXBsYWNlKTsKIAkJTShjaGVjayk7CgkJaW50IHBvcyxuLGxlbixmbGFnOwoJCWZsYWc9MDsKCQljaW4+Pm47CgkJZm9yKGludCBpPTA7aTxuO2krKykKCQl7CgkJCWNpbj4+cmVwbGFjZVtpXVswXTsKCQkJY2luPj5yZXBsYWNlW2ldWzFdOwoJCX0KCQljaW4+PmNoOwoJCWxlbj1zdHJsZW4oY2gpOwoJCWlmKG4pCgkJewoJCQlmb3IoaW50IGk9MDtpPGxlbjtpKyspCgkJCXsKIAoJCQkJZm9yKGludCBqPTA7ajxuO2orKykKCQkJCXsKIAoJCQkJCWlmKChjaFtpXT09cmVwbGFjZVtqXVswXSlhbmQoY2hlY2tbaV09PTApKQoJCQkJCXsKCQkJCQkJY2hbaV09cmVwbGFjZVtqXVsxXTsKCQkJCQkJY2hlY2tbaV09MTsKCQkJCQkJLy9pZihyZXBsYWNlW2pdW2ldPT0nLicpCgkJCQkJCQkvL2ZsYWc9MTsKCQkJCQkJLy9icmVhazsKIAoJCQkJCX0KCQkJCX0JCiAKCQkJfQkKIAoJCX0KCQlpbnQgY291bnQ9MDsKIAkJY2hhciAqcHRyPU5VTEw7CiAJCXB0cj1zdHJjaHIoY2gsJy4nKTsJCQoJCWlmKHB0ciE9TlVMTCkKCQl7CgkJCXBvcz1wdHItJmNoWzBdOwkJLy9QT1NJVElPTiBBVCBXSElDSCBUSEUgJyAuICcgSVMgUFJFU0VOVAoJCQkvL2NvdXQ8PCJQb2ludCBmb3VuZCBhdCAiPDxwb3M8PGVuZGw7CgkJCWZvcihpbnQgaT1sZW4tMTtpPj1wb3M7aS0tKQoJCQl7CgkJCQlpZihjaFtpXSE9JzAnKQoJCQkJewoJCQkJCS8vZmxhZz0xOwoJCQkJCWJyZWFrOwoJCQkJfQoJCQkJZWxzZSBpZihjaFtpXT09JzAnKQoJCQkJCXsKCQkJCQkJY291bnQrKzsKCQkJCQkJY2hbaV09J1wwJzsKCQkJCQl9CgkJCX0KCQlpZihjb3VudCsxPT1sZW4tcG9zKQoJCQljaFtwb3NdPTA7CgkJfQoJCQoJCS8vY291dDw8IkNvdW50PSI8PGNvdW50PDxlbmRsPDwiTGVuLXBvcz0iPDxsZW4tcG9zPDxlbmRsOwogCiAKCQkvL2lmKGZsYWcpCgkJewoJCQkvKmludCB0bXA9bGVuLTE7CgkJCWZvcih0bXA7Y2hbdG1wXT09JzAnOykKCQkJCXsKCQkJCQljaFt0bXBdPTA7CgkJCQkJdG1wLT0xOwkKCQkJCX0qLwoJCQlpbnQgdG1wPTA7CgkJCWZvcih0bXA9MDtjaFt0bXBdPT0nMCc7KQoJCQkJewoJCQkJCXRtcCsrOwoJCQkJCQoJCQkJfQoJCQljaGFyICpxPSZjaFt0bXBdOwoJCQlpZihjaFt0bXBdIT0wKQoJCQkJY291dDw8cTw8ZW5kbDsKCQkJZWxzZQoJCQkJY291dDw8IjBcbiI7IAogCgkJfQogCgkJLyplbHNlCgkJewoJCQlkb3VibGUgIGFuczsKCQkJLy9jb3V0PDxjaDw8ZW5kbDsKCQkJYW5zPWF0b2YoY2gpOwoJCQljb3V0PDxhbnM8PGVuZGw7CgkJfS8qCiAvKi8KCX0KIC8vc3lzdGVtKCJwYXVzZSIpOwoJcmV0dXJuIDA7Cn0=