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

int n, m;
int k[10];
int s[10][10];
int p[10];

int main(void){
	cin >> n >> m;
	for(int i = 0; i < m; i++){
		cin >> k[i];
		for(int j = 0; j < k[i]; j++){
			cin >> s[i][j];
			s[i][j]--;
		} 
	}
	for(int i = 0; i < m; i++) cin >> p[i];

	int res = 0;
	for(int i = 0; i < 1<<n; i++){
		bool flag = true;
		for(int j = 0; j < m; j++){
			int num = 0;
			for(int l = 0; l < k[j]; l++){
				if(i>>s[j][l] & 1) num++;
			}
			if(num % 2 != p[j]) flag = false;
		}

		if(flag) res++;
	}

	cout << res << endl;
	return 0;
}