#include <bits/stdc++.h>
using namespace std;

int main() {
  int N,M;
  cin>>N>>M;
  vector<bitset>p(M);
  for(int i=0;i<M;i++){
    int k;
    cin>>k;
    bitset<N> a;
    for(int j=0;j<k;j++){
      int b;
      cin>>b;
      a.set(b-1);
    }
    p.at(i)=a;
  }
      vector<int> q.(M);
      for(int i=0;i<M;i++){
        cin>>q.at(i);
      }
      int Z=0;
      for (int i = 0; i < (1 << N); i++) {
    bitset<N> s(i);
        int e=0;
      for(int j=1; j<M;j++){
        bitset d=(p.at(j)&s);
        if(d.count()%2==q.at(j)){
          e++;
        }
        if(e==M){
          Z++;
        }
      }
        cout<<Z<<endl;
      
}