#include <bits/stdc++.h>
using namespace std;
int main(){
	int n,m,sum=0;
	cin>>n>>m;
	int a[m+1],b[m+1],c[m+1][10005];
	for(int i=1;i<=m;i++){
		cin>>a[i];
		for(int j=1;j<=a[i];j++){
			cin>>c[i][j];
		}
	}
	for(int i=1;i<=m;i++){
		cin>>b[i];
	}
	int g[100005]={0},j=n;
	while(g[0]==0){
		bool false_true=true;
		for(int k=1;k<=m;k++){
			int s=0;
			for(int l=1;l<=a[k];l++){
				if(g[c[k][l]]){
					s++;
				}
			}
			if(s%2!=b[k]){
				false_true=false;
			}
		}
		if(false_true==true){
			sum++;
		}
		j=n;
		while(g[j]==1) j--;
		g[j]++;
		for(int i=j+1;i<=n;i++){
			g[i]=0;
		}
	}
	cout<<sum;
}