#include <bits/stdc++.h>
using namespace std;
int main() {
  long long int t, i, j, k, m, n, x, y;
  t = 1;
  while (t--) {
    long long int flag = 0;
    cin >> n >> k >> m;
    vector<string> V(n);
    map<string, long long int> mp1;
    for (i = 0; i < n; i++) {
      cin >> V[i];
      mp1[V[i]] = i;
    }
    vector<long long int> ar(n, 0);
    for (i = 0; i < n; i++) {
      cin >> x;
      ar[i] = x;
    }
    map<long long int, long long int> mcost;
    for (i = 0; i < k; i++) {
      y = 1000000007;
      cin >> x;
      vector<long long int> temp;
      for (j = 0; j < x; j++) {
        long long int z;
        cin >> z;
        temp.push_back(z - 1);
        y = min(y, ar[z - 1]);
      }
      for (j = 0; j < x; j++) {
        mcost[temp[j]] = y;
      }
    }
    long long int ans = 0;
    for (i = 0; i < m; i++) {
      string z;
      cin >> z;
      x = mp1[z];
      ans += mcost[x];
    }
    cout << ans;
  }
  return 0;
}
