#include <bits/stdc++.h>
using namespace std;
vector<string> v;
map<string, long long int> ma;
vector<vector<long long int> > v1;
long long int cost[100005];
int main() {
  ios::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  long long int n, k, m;
  string s;
  string t;
  long long int i, j;
  cin >> n >> k >> m;
  v.push_back("");
  for (i = 1; i <= n; i++) {
    cin >> s;
    v.push_back(s);
    ma[s] = i;
  }
  for (i = 1; i <= n; i++) cin >> cost[i];
  for (i = 0; i < k; i++) {
    long long int x;
    cin >> x;
    vector<long long int> temp;
    long long int min = 10000000000;
    for (j = 0; j < x; j++) {
      long long int t;
      cin >> t;
      if (cost[t] < min) min = cost[t];
      temp.push_back(t);
    }
    for (j = 0; j < (long long int)(temp.size()); j++) cost[temp[j]] = min;
    v1.push_back(temp);
  }
  long long int final = 0;
  for (i = 0; i < m; i++) {
    cin >> t;
    long long int temp1 = ma[t];
    final += cost[temp1];
  }
  cout << final << endl;
  return 0;
}
