/*
TASK: LDIST
LANG: C++
*/
#include<iostream.h>
using namespace std;
int g[37],h[37];
int main(void)
{
 int d[37][37],v[37];
 int i,j,p,q,t1,t2,m,l;
 long s=0;
 char c1,c2,a[1024],b[1024];
 for(i=0;i<37;i++)for(j=0;j<37;j++)d[i][j]=100;
 for(i=0;i<37;i++){v[i]=100;d[i][i]=0;}

 cin>>p;
 for(i=0;i<p;i++)
 {
  cin>>c1;
  if('0'<=c1&&c1<='9')t1=c1-'0';
  else if('A'<=c1&&c1<='Z')t1=c1-'A'+10;
  else t1=36;
  cin>>v[t1];
 }
 cin>>q;
 for(i=0;i<q;i++)
 {
  cin>>c1>>c2;
  if('0'<=c1&&c1<='9')t1=c1-'0';
  else if('A'<=c1&&c1<='Z')t1=c1-'A'+10;
  else t1=36;
  if('0'<=c2&&c2<='9')t2=c2-'0';
  else if('A'<=c2&&c2<='Z')t2=c2-'A'+10;
  else t2=36;
  cin>>d[t1][t2];
  d[t2][t1]=d[t1][t2];
 }
 cin>>a;
 cin>>b;

 i=-1;
 while(a[++i]!='\0')
 {
  if('0'<=a[i]&&a[i]<='9')g[a[i]-'0']++;
  else if('A'<=a[i]&&a[i]<='Z')g[a[i]-'A'+10]++;
  else g[36]++;
 }
 i=-1;
 while(b[++i]!='\0')
 {
  if('0'<=b[i]&&b[i]<='9')h[b[i]-'0']++;
  else if('A'<=b[i]&&b[i]<='Z')h[b[i]-'A'+10]++;
  else h[36]++;
 }

 for(i=0;i<37;i++)
 {
  if(h[i]!=0)
  {
   m=v[i];
   l=i;
   for(j=0;j<37;j++)
   {
    if(d[i][j]<m&&g[j]>0){m=d[i][j];l=j;}
   }
   s+=m;
   g[l]--;
  }
 }
 cout<<s<<'\n';
 return 0;
}
