{
TASK:ldist
LANG:PASCAL
}
{$R-}
var
 a,b,b1:array [1..1024] of char;
 aa,bb,v:array [#48..#95] of integer;
 d:array [#48..#95,#48..#95] of byte;
 xa,xb:array [1..1024] of integer; {sprqmo a}
 i,j,k,l,ca,i1,cb,p,q,cost:integer;
 t:text;
 c,c1,c2:char;
begin
  for c:=#48 to #95 do
   for c1:=#48 to #95 do
    d[c,c1]:=100;
  for c:=#48 to #95 do
   begin
     v[c]:=100;
     d[c,c]:=0;
   end;

{  assign (t,'ldist.in');
  reset (t);}
  readln (p);
  for i:=1 to p do
   begin readln({t,}c,j); v[c]:=j; end;
  readln ({t,}q);
  for i:=1 to q do
   begin readln ({t,}c1,c,c2,j);
   d[c1,c2]:=j; d[c2,c1]:=j; end;
  repeat
    inc(ca);
    read({t,}a[ca]);
    inc(aa[a[ca]]);
  until (a[ca]<#48)or(a[ca]>#95); dec(ca);
{  read (t,c1);}                  {ZA HOME TEST TRQQ TVA DA GO IMA!}
  repeat
    inc(cb);
    read({t,}b[cb]);
    inc(bb[b[cb]]);
  until (b[cb]<#48)or(b[cb]>#95); dec(cb);
{  close (t);}
  if ca<cb then
  begin
    l:=ca; ca:=cb; cb:=l;
    for i:=1 to ca do
     begin c:=a[i]; a[i]:=b[i]; b[i]:=c; end;
    for i:=ca+1 to cb do
     begin a[i]:=b[i]; end;
  end;

  for i:=1 to ca do
   write (a[i]); writeln; for i:=1 to cb do write(b[i]); writeln;

  for i:=1 to ca do begin
   for j:=1 to cb do
     begin
       l:=0;
       while (l+i-1<ca)and(l+j-1<cb)and((a[i+l]=b[j+l])or(d[a[i+l],b[j+l]]<100)) do
        inc(l);
       if l>xa[i] then
        begin
          xa[i]:=l;
          xb[i]:=j;
          i:=i+l;
        end;
     end;
   if i>ca then break;
  end;

  for i:=1 to ca do
   if xa[i]>0 then
    begin
      for j:=0 to xa[i]-1 do
       begin
         inc(cost,d[a[i+j],b[xb[i]+j]]);
         a[i+j]:=b[xb[i]+j];
         b1[xb[i]+j]:='X';
       end;
      i:=i+xa[i]-1;
    end;

  for i:=1 to cb do
   if xa[i+i1]>0 then inc(i,xa[i+i1]-1)
   else
    if b1[i]<>'X' then
     begin inc(cost,d[b[i],a[i]]); a[i]:=b[i]; end
    else
     begin
       inc(cost,v[a[i]]);
       for j:=i to ca do
        a[j]:=a[j+1];
       inc(i1);
       dec(i);
     end;

  for i:=1 to ca do
   if b[i]<>a[i] then inc(cost,v[a[i]]);

  writeln (cost);
end.