#include<bits/stdc++.h>
using namespace std;
#define s second
#define f first
typedef long long ll;
typedef pair<ll,pair<ll,ll> > pii;
ll a[2000005];
ll get(ll x){
    if(a[x]==x)return x;
    return a[x]=get(a[x]);
}
void join(ll x,ll y){
    a[get(x)]=a[get(y)];
}
int main(){
    ll n,mm,k;
    cin>>n>>mm>>k;
    map<int,int>m;
    for(ll i=1;i<=k;i++){
        ll x;
        cin>>x;
        m[i]=x;
    }
    for(ll i=1;i<=n;i++)a[i]=i;
    vector<pii>v,res;
    while(mm--){
        ll s=0;
        ll u,vv,l;
        cin>>u>>vv>>l;
        while(l--){
            ll x;
            cin>>x;
            s|=(1<<(x));
        }
        v.push_back({s,{u,vv}});
    }
    sort(v.begin(),v.end());
    ll sum=0;
    for(ll i=0;i<v.size();i++){
        pii it=v[i];
        if(a[get(it.s.f)]!=a[get(it.s.s)]){
            join(it.s.f,it.s.s);
            res.push_back(it);
            sum|=it.f;
        }
    }
    if(res.size()!=(n-1))cout<<-1<<endl;
    else {ll aa=0;
    for(ll i=1;i<=k;i++)if(sum&(1<<i))aa+=m[i];
        cout<<aa<<endl;
    }
    
}