#include <cstdio>
#define IN "aprindere.in"
#define OUT "aprindere.out"
#define FOR(i,a,b) for(int i=a;i<=b;++i)
#define N_MAX 1001
bool on[N_MAX];
int cam[N_MAX];
short int a[N_MAX][N_MAX];
int N,M;
void scan()
{
int x;
freopen(IN, "r",stdin);
freopen(OUT, "w",stdout);
scanf("%d%d", &N,&M);
FOR(i,0,N-1)
scanf("%d ",&on[i]);
FOR(i,1,M)
{
scanf("%d", &x);
cam[x] = i;
scanf("%d %d",&a[i][0],&a[i][1]);
FOR(j,1,a[i][1])
scanf("%d ",&a[i][j+1]);
}
}
void solve()
{
int sol=0;
/*FOR(i,0,N-1)
printf("%d ",on[i]);
printf("\n");
FOR(i,0,N)
if( cam[i] )
{
printf("in camera %d este un intrerupator de timp : %d cu %d camere\n",i,a[ cam[i] ][0],a[ cam[i] ][1]);
FOR(j,1,a[ cam[i] ][1] )
printf("%d ", a[ cam[i] ][j+1]);
printf("\n");
}
*/
FOR(i,0,N)
{
if(!on[i])
{
sol += a[ cam[i] ][0];
FOR(j,1,a[ cam[i] ][1])
if(on[ a[ cam[i] ][j+1]])
on[ a[ cam[i] ][j+1]] = 0;
else
on[ a[ cam[i] ][j+1]] = 1;
//FOR(i,0,N-1)
// printf("%d ",on[i]);
//printf("\n");
}
}
printf("%d\n", sol);
}
int main()
{
scan();
solve();
return 0;
}