#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
typedef long long int ll;

int main(){
	int n,m; cin >> n >> m;
	vector<vector<int> > v(m);

	for(int i=0;i<m;i++){
		int k; cin >> k;
		v[i].resize(k);
		for(int j=0;j<k;j++){
			cin >> v[i][j];
			v[i][j]--;
		}
	}
	vector<int> p(m);
	for(int i=0;i<m;i++){
		cin >> p[i];
	}
	int ans=0;
	for(int i=0;i<(1<<n);i++){
		bool ok=true;
		for(int j=0;j<m;j++){
			int c=0;
			for(int id:v[j]){
				if((i>>id)&1)c++;
			}
			if(c%2!=p[j])ok=false;
		}
		if(ok)ans++;
	}
	cout << ans << endl;
}