#include <bits/stdc++.h>
using namespace std;
const int N = 1e6 + 10;
vector<int> vc;
string s[N + 10];
int a[N + 10];
map<string, int> mp;
int main() {
  ios_base::sync_with_stdio(false);
  int n, k, m;
  cin >> n >> k >> m;
  for (int i = 0; i < n; i++) cin >> s[i], mp[s[i]] = i;
  for (int i = 0; i < n; i++) cin >> a[i];
  for (int i = 0; i < k; i++) {
    int x;
    cin >> x;
    while (x--) {
      int g;
      cin >> g, g--;
      vc.push_back(g);
    }
    int mn = 1e9;
    for (int j = 0; j < vc.size(); j++) mn = min(mn, a[vc[j]]);
    for (int j = 0; j < vc.size(); j++) a[vc[j]] = mn;
    vc.clear();
  }
  long long ans = 0;
  for (int i = 0; i < m; i++) {
    string t;
    cin >> t;
    ans += a[mp[t]];
  }
  cout << ans;
  return 0;
}
