#include<stdio.h>
#include <string.h>
int beki(int a,int b)
{
  int i;
  int c = 1;
  for(i=0;i<b;i++){
    c=c*a;
  }
  return(c);
}
int on(int q[10],int s[],int k)
{
  int a,i;
  for(i=0;i<k;i++){
    a=a*q[s[k]];
  }
  return(a);
}
int main(void)
{
  int n,m;
  int k[10];
  int s[10][10];
  int i,j,l;
  int p[10];
  int a=0;
  int b;
  int c =0;
  int q[10];
  
  scanf("%d %d",&n,&m);
  
  for(i=0;i<m;i++);{
    scanf("%d",&k[i]);
    for(j=0;j<k[i];j++){
      scanf("%d",&s[i][j]);
    }
  }
  for(i=0;i<m;i++){
    scanf("%d",&p[i]);
  }
  for(i=0;i<beki(2,n);i++){
    b = i;
    for(j=0;j<n;j++){
      q[j] = b / beki(2,n-j-1);
      b=b-beki(2,n-j-1)* q[j];
    }
    for(l=0;l<m;l++){
      if(on(q,s[i],k)==1)
        c++;
      else break;
    }
    if(c==m)
      a++;
  }
  printf("%d",a);
     return 0;
}