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

int main(){
	// sengen
	int n,m;
	// nyuryoku
	cin >> n >> m;
	int s[m][n];
	int k[m];
	int p[m];
	for(int i=0;i<m;i++){
		cin >> k[i];
		for(int j=0;j<k[i];j++){
			cin >> s[i][j];
		}
	}
	for(int i=0;i<m;i++){
		cin >> p[i];
	}
	// keisan
	int sum=0;
	for(int bit=0;bit<(1<<n);bit++){
		for(int i=0;i<m;i++){
			int check=0;
			for(int j=0;j<k[i];j++){
				if(bit & (1<<s[i][j]-1)){
					check++;
				}
			}
			if(check%2 != p[i]){
				break;
			}
			if(i == m-1){
				sum++;
			}
		}
	}
	cout << sum;
}