/*
TASK: ldist
LANG: C
*/
#include<stdio.h>
#include<string.h>
struct {char x;char y; int z;} v[42],d[42];
int main(){
int n,m,i,j,k,l,p,q,s=0,f;
char a[1024],b[1024];
//freopen("ldist.in","rt",stdin);
//freopen("ldist.out","wt",stdout);
scanf("%d",&p);
scanf("\n");
for (i=0;i<p;i++) scanf("%c%c%d\n",&v[i].x,&v[i].y,&v[i].z);
scanf("%d",&q);
scanf("\n");
for (i=0;i<q;i++) scanf("%c %c %d\n",&d[i].x,&d[i].y,&d[i].z);
scanf("\n");
scanf("%s",&a);
scanf("%s",&b);
n=strlen(a);
m=strlen(b);
//for (i=0;i<p;i++) printf("%c %d\n",v[i].x,v[i].z);
//for (i=0;i<q;i++) printf("%c %c %d\n",d[i].x,d[i].y,d[i].z);
//printf("%s\n%s\n",a,b);
for (i=0,k=0;i<n;i++,k++)
    {
    if  (k>=m) k--;
    if  (a[i]==b[k]) s+=0;
    if  (a[i]!=b[k])
	{
	f=1;
	for (j=0;j<q;j++)
	if  ((a[i]==d[j].x&&b[k]==d[j].y)||(b[k]==d[j].x&&a[i]==d[j].y)) {s+=d[j].z;f=0;}
	for (l=0;l<p;l++) if  (b[k]==v[l].x) {s+=v[l].z;f=0;i--;}
	if  (f) {s+=100;if  (i<n-1) i--; }
	}
    }
for (;k<m;k++) s+=100;
printf("%d\n",s);
return 0;
}
