#include<bits/stdc++.h>
using namespace std;
 
typedef long long ll;
typedef pair<int,int> P;

int main(){
	int n,m;
	cin>>n>>m;
	vector<int>k(m),p(m);
	vector<vector<int>>vec(m);
	for(int i=0;i<m;i++){
		cin>>k[i];
		vec[i].resize(k[i]);
		for(int j=0;j<k[i];j++){
			cin>>vec[i][j];
			vec[i][j]--;
		}
	}
	int ans=0;
	for(int i=0;i<m;i++)cin>>p[i];
	for(int i=0;i<(1<<n);i++){
		bool ok=true;
		for(int j=0;j<m;j++){
			int tmp=0;
			for(auto l:vec[j]){
				if((i>>l)&1)tmp++;
			}
			if(tmp%2!=p[j])ok=false;
		}
		if(ok)ans++;
	}
	cout<<ans<<endl;
	return 0;
}
