#include <bits/stdc++.h>

using namespace std;

int main(void){
	int n,m;
	scanf("%d%d",&n,&m);
	vector<vector <int> > s(m);
	int k;
	int p[n];
	for(int i=0;i<m;i++){
		scanf("%d",&k);
		s[i].resize(k);
		for(int j=0;j<k;j++){
			scanf("%d",&s[i][j]);
			s[i][j]--;
		}
	}
	for(int i=0;i<m;i++)scanf("%d",&p[i]);
	
	int ans=0;
	//2^10は1024！！！！
	for(int i=0;i<(1<<n);i++){
		bool ok = true;
		for(int j=0;j<m;j++){
			int count=0;
			for(int id : s[j]){
				if((i>>id) & 1)count++;
			}
			if((count%=2)!=p[j])ok=false;
		}
		if(ok)ans++;
	}
	printf("%d",ans);
	
	return 0;
}