#include<iostream>
using namespace std;
int N,M;
int k[10];
int s[10][10];
int p[10];
int main()
{
	cin>>N>>M;
	for(int i=0;i<M;i++)
	{
		cin>>k[i];
		for(int j=0;j<k[i];j++)
		{
			int S;cin>>S;S--;
			s[i][S]=1;
		}
	}
	for(int i=0;i<M;i++)cin>>p[i];
	int ans=0;
	for(int i=0;i<1<<N;i++)
	{
		bool flag=1;
		for(int j=0;j<M;j++)
		{
			int cnt=0;
			for(int k=0;k<N;k++)
			{
				if(s[j][k]&&(i>>k&1))cnt++;
			}
			flag&=cnt%2==p[j];
		}
		ans+=flag;
	}
	cout<<ans<<endl;
}
