#include <bits/stdc++.h>
using namespace std;
map<string, int> m;
map<int, int> q;
int main() {
  int n, k, z;
  cin >> n >> k >> z;
  for (int i = 0; i < n; i++) {
    string st;
    cin >> st;
    m[st] = i + 1;
  }
  for (int i = 0; i < n; i++) {
    int a;
    scanf("%d", &a);
    q[i + 1] = a;
  }
  while (k--) {
    int x;
    scanf("%d", &x);
    int mn = INT_MAX;
    vector<int> v;
    while (x--) {
      int a;
      scanf("%d", &a);
      v.push_back(a);
      if (q[a] < mn) mn = q[a];
    }
    for (int i = 0; i < v.size(); i++) q[v[i]] = mn;
  }
  long long s = 0;
  while (z--) {
    string st;
    cin >> st;
    s += q[m[st]];
  }
  cout << s;
  return 0;
}
