#include<bits/stdc++.h>
using namespace std;
int main(){
int N,M;
  cin>>N>>M;
  vector<vector<int>>A(M,vector<int>(10,0));
  for(int i=0;i<M;i++){
  int k;
    cin>>k;
    for(int j=0;j<k;j++){
    int s;
      cin>>s;
      A.at(i).at(s-1)=1;
    }
  
  }vector<int>p(M);
  for(int i=0;i<N;i++)
    cin>>p.at(i);
  int Ans=0;;
  for(int temp=0;temp<(1<<10);temp++){
    bool ans=true;
    bitset<10>s(temp);
    for(int i=0;i<M;i++){
    int sum=0;
      for(int j=0;j<N;j++)
      if(s.test(j) && A.at(i).at(j)==1)
        sum++;
        if(sum%2!=p.at(i){
         ans=false; break;
        }
    
    }if(ans)Ans++;
     }cout<<Ans<<endl;
  
 return 0;
}