   program abc128c
      implicit none
      integer,allocatable,dimension(:)::k,p
      integer,allocatable,dimension(:,:)::s
      integer,dimension(10)::reader
      integer::n,m
      integer::i,j,l
      integer::ans,check,on,b
      

         read *, n,m
         allocate(k(m),p(m),s(m,10))  ! s(m,k(m))となるのが正しい

         s=0
         do i=1,m
            reader=0
            read *, k(i),reader(1:k(i))   ! readerは連結スイッチの一次記憶
            do j=1,k(i)
               s(i,reader(j))=1           ! 連結している電球のフラグを立てる
            end do
         end do

         read *, p(1:m)

         ans=0
         do i=0,2**n-1        ! 全てのスイッチを探索
            check=0
            do j=1,m          ! 全ての電球を探索
               b=i
               on=0
               do l=1,n
                  if (and(b,1)==1) on=mod(on+s(j,l),2)  ! and(i,j),or(i,j)はビット判定関数
                                                        ! and(b,1)==1 すなわち b(=i)が奇数
                  b=b/2
               end do
               if (on/=p(j)) check=1
            end do
            if (check==0) ans=ans+1
         end do

         print *, ans

   end program abc128c