#include<stdio.h>
#include<stdlib.h>
#include<stdbool.h>
#include<limits.h>
#include<float.h>

#define NUM 10

int main(){
	int n, m, k[NUM], s[NUM][NUM], p[NUM], ans = 0;
	scanf("%d%d\n", &n, &m);
	for(int i=0; i<m; i++){
		scanf("%d", &k[i]);
		for(int j=0; j<k[i]; j++){
			scanf("%d", &s[i][j]);
		}
	}
	for(int i=0; i<m; i++){
		scanf("%d", &p[i]);
	}
	for(int i=0; i<(1<<n); i++){
		int j;
		for(j=0; j<m; j++){
			int on = 0;
			for(int l=0; l<k[j]; l++){
				if((1 << (s[j][l] - 1)) & i) on++;
			}
			if(on % 2 != p[j]) break;
		}
		if(j == m) ans++;
	}
	printf("%d\n", ans);
	return 0;
}