#include<bits/stdc++.h> 
using namespace std;

int N,M,k[15],s[15][15],p[15],ans;

bool check(int x)
{
	for(int i = 1; i <= M; i++){
		int res = 0;
		for(int j = 0; j < k[i]; j++){
			res ^= (x >> s[i][j]) & 1;
		}
		if(res != p[i]) return 0;
	}
	return 1;
}

int main()
{
	cin >> N >> M;
	for(int i = 1; i <= M; i++){
		cin >> k[i];
		for(int j = 0; j < k[i]; j++){
			cin >> s[i][j];
			s[i][j]--;
		}
	}
	for(int i = 1; i <= M; i++) cin >> p[i];
	for(int i = 0; i < (1<<N); i++){
		if(check(i)) ans++;
	}
	cout << ans << endl;
	return 0;
}