#include <bits/stdc++.h>
using namespace std;
#define REP(i,n) for(int(i)=0;i<(n);i++)

int main(){
  int n,m,ans=0;cin>>n>>m;
  vector<int> k(m,0),p(m,0);
  vector<vector<int>> s(m,vector<int>(n,0));
  REP(i,m){
    cin>>k.at(i);
    for(int j=0;j<k.at(i);j++){
      cin>>s.at(i).at(j);
    }
  }
  REP(i,m) cin>>p.at(i);
  
  for(int i=0;i<pow(2,n);i++){
    bool flag=1;
    for(int j=0;j<m;j++){
      int num_of_on=0;
      for(int l=0;l<k.at(j);l++){
        if(i&(1<<(s.at(j).at(l)-1))) num_of_on++;
      }
      if(num_of_on%2!=p.at(j)) flag=0;
    }
    if(flag) ans++;
  }

  cout<<ans<<endl;
}