#include <bits/stdc++.h>
using namespace std;
#define rep(i,n) for( int i = 0 ; i < n ; i++ )
typedef long long ll ;
int main() {

  int N , M ;
  int ans = 0 ;
  cin >> N >> M ;
  vector<int> A(M) ;
  vector<int> p(M) ;
  vector<bool> sw(M) ;
  vector<bool> li(N) ;
  int k , s ;
  rep(i,M){
    cin >> k ;
    rep(j,k){
      cin >> s ;
      (A(i)).push_back(s) ;
    }
  }
  rep(i,M) cin >> p[i] ;
  for(int i = 0 ; i <(1<<N) ; i++ ){
	rep(j,M){
      if( i & (1<<j) ) sw[j] = true ;
      else sw[j] = false ;
    }
    rep(l,N){
      for(auto k : A[l]) if( sw[k] ) sum++ ;
      if( p[l] == sum%2 ) li[l] = true ;
    }
    int test = 1 ;
    rep(l,N) if(li[l] == false )test = 0 ;
    if(test)ans++ ;
  }
  cout << ans << endl;
}