#include <bits/stdc++.h>
using namespace std;
long long n, m, k;
map<string, long long> mm;
string a[100005];
long long c[100005];
long long min(long long a, long long b) { return a < b ? a : b; }
int main() {
  cin >> n >> k >> m;
  for (int i = 1; i <= n; i++) {
    cin >> a[i];
  }
  for (int i = 1; i <= n; i++) {
    long long x;
    cin >> x;
    mm[a[i]] = x;
  }
  for (int i = 0; i < k; i++) {
    long long x;
    cin >> x;
    long long minn = 0x3f3f3f3f;
    for (int j = 0; j < x; j++) {
      cin >> c[j];
      minn = min(minn, mm[a[c[j]]]);
    }
    for (int j = 0; j < x; j++) {
      mm[a[c[j]]] = minn;
    }
  }
  string b;
  long long s = 0;
  for (int i = 0; i < m; i++) {
    cin >> b;
    s += mm[b];
  }
  cout << s << endl;
  return 0;
}
