#include <bits/stdc++.h>
using namespace std;
//解説AC2回目
int main(){
  int n,m;
  cin>>n>>m;
  vector<int>a(n);//スイッチ
  for(int i=0;i<m;i++){
    int k;
    cin>>k;
    for(int j=0;j<k;j++){
      int s;
      cin>>s;
      s--;
      a[s] |= 1<<i;//スイッチでボタンを押す
    }
  }
  int p=0;
  for(int i=0;i<m;i++){
    int x;
    cin>>x;
    p |= x<<i;//スイッチの点灯条件(偶奇)
  }
  int kotae = 0;
  for(int s=0;s<(1<<n);s++) {  
    int t=0;
    for(int i=0;i<n;i++) {
      if(s>>i&1) {  // i番目のbitが立っていれば加算する
        t^=a[i];
      }
    }
    if(t==p)kotae++;
  }
  cout<<kotae<<endl;
  return 0;
}