#include <iostream>
#include <algorithm>
#include <string>
#include <cstdio>

 using namespace std;

 int V[128];
 int D[128][128];
 int F[1024][1024];
 string t1, t2;
 int m1, m2;

 int main() {
     freopen("test.in", "r", stdin);
     for(int i = 0; i < 128; ++i) {
             V[i] = 100;
             for(int j = 0; j < 128; ++j)
                     D[i][j] = 100;
             D[i][i] = 0;
     }

     cin >> m1;
     for(int i = 0; i < m1; ++i) {
             int k2;
             char k1;
             cin >> k1 >> k2;
             V[k1] = k2;
     }
     cin >> m2;
     for(int i = 0; i < m2; ++i) {
             char c1, c2; int val;
             cin >> c1 >> c2 >> val;
             D[c1][c2] = val;
             D[c2][c1] = val;
     }
     cin >> t1 >> t2;
//     cout << t1 << t2;
           
     F[0][0] = D[t1[0]][t2[0]];
     if( t1.length() < t2.length() ) {
         string tm = t1;
         t1 = t2;
         t2 = tm;
     }
     for(int i = 0; i < t1.length(); ++i) {
             for(int j = 0; j < t2.length(); ++j) {
                     int tmp;
                     if(t1[i] == t2[i]) F[i][j] = F[i-1][j-1];
                     tmp = min(  F[i-1][j]+V[t1[i]],
                                               F[i][j-1]+V[t2[j]] );
                     F[i][j] = min(F[i-1][j-1]+D[t1[i]][t2[j]],
                                  F[i-1][j-1]+V[t1[i]]+V[t2[j]]);
                     F[i][j] = (F[i][j] < tmp ? F[i][j] : tmp );
     //                cout << F[i][j] << ' ';
             }
     //             cout << '\n';
     }
     cout << F[t1.length()-2][t2.length()-1];
     //cout << ans << '\n';
     return 0;
 }
