#include<iostream>
using namespace std;
int n,m,p,l;
int a[100],b[100],c[100][100],d[100];
int ans;
int vs[100];
int x[100];
void backtrack(int num, int sum)
{
if (num == m+1)
{
for (int i = 1; i<=n; i++) vs[i] = 0;
for (int i=1; i<=m; i++)
if (x[i] == 1)
{
for (int j=1; j<=c[i][0]; j++) vs[c[i][j]] = 1;
}
for (int i=1; i<=l; i++)
if (vs[d[i]] == 0) sum+=a[d[i]];
if (ans > sum) ans = sum;
return;
}
x[num] = 0; backtrack(num+1,sum);
x[num] = 1;
if (sum >= ans) return;
else backtrack(num+1, sum+b[num]);
}
int main()
{
// freopen("input.txt","r",stdin);
int t;
cin >> t;
for (int tc=1; tc<=t; tc++)
{
ans = 0;
cin >> n;
for (int i=1; i<=n; i++) cin >> a[i];
cin >> m;
for (int i=1; i<=m; i++)
{
cin >> b[i];
cin >> c[i][0];
for (int j=1; j<=c[i][0]; j++) cin >> c[i][j];
}
cin >> l;
for (int i=1; i<=l; i++)
{
cin >> d[i];
ans+= a[d[i]];
}
backtrack(1,0);
cout << "#" << tc << " " << ans << endl;
}
}