#include<bits/stdc++.h>
using namespace std;
vector<int> v,v2[10];
int main()
{
	int n,m;
	cin>>n>>m;
	int k[10],s[10][10],p[10];
	for(int i=0;i<m;i++)
	{
		cin>>k[i];
		v.push_back(k[i]);
		for(int j=0;j<k[i];j++)
		{
			cin>>s[i][j];
			v2[i].push_back(s[i][j]);
		}
	}
	for(int i=0;i<m;i++)
	cin>>p[i];
	int ans=0;
	for(int i=0;i<(1<<n);i++)
	{
		int j=0;
		for(;j<m;j++)
		{
			int su=0;
			for(int k1=0;k1<v[j];k1++)
			{
				if(i&(1<<(v2[j][k1]-1)))
				su+=1;
			}
			if(su%2==p[j]%2)
			{
				continue;
			}
			j--;
			break;
		}
		if(j==m)
		ans++;
	}
	cout<<ans;
	return 0;
}