#include <iostream>
#include <vector>
using namespace std;
int main(){
  int N,M;
  cin >> N >> M;
  vector<int> bits(N,0),p(N);
  for(int i=0,k,b;i<M;i++){
    for(cin >> k;k>0;k--){
      cin >> b;
      bits[i]+=(1<<(b-1));
    }
  }
  for(int i=0;i<M;i++)cin >> p[i];
  
  int cnt=0;
  for(int b=0;b<(1<<N);b++){
    bool  flag=true;
    for(int i=0;i<M;i++){
      int x=b&bits[i],q=0;
      for(int s=0;s<N;s++){
        if(x&(1<<s))q++;
      }
      if(q%2!=p[i])flag=false;
    }
    if(flag)cnt++;
  }
  cout << cnt << endl;
  return 0;
}