#include <bits/stdc++.h>
using namespace std;
const long double PI = acos(-1);
long long sqr(long long a) { return a * a; }
int main() {
  ios::sync_with_stdio(false);
  cin.tie(nullptr);
  cout.tie(nullptr);
  int n, k, m;
  cin >> n >> k >> m;
  map<string, int> second;
  for (int i = 0; i < n; i++) {
    string ss;
    cin >> ss;
    second[ss] = i;
  }
  vector<long long> cost(n);
  for (int i = 0; i < n; i++) {
    cin >> cost[i];
  }
  vector<long long> min_cost(n);
  for (int i = 0; i < k; i++) {
    int cnt;
    cin >> cnt;
    vector<int> a(cnt);
    long long mn = 1e9;
    for (int j = 0; j < cnt; j++) {
      cin >> a[j];
      mn = min(mn, cost[--a[j]]);
    }
    for (int j = 0; j < cnt; j++) {
      min_cost[a[j]] = mn;
    }
  }
  long long ans = 0;
  for (int i = 0; i < m; i++) {
    string ss;
    cin >> ss;
    ans += min_cost[second[ss]];
  }
  cout << ans;
}
