#include <stdio.h>
int n, m, i, j, k, ans, a[15];
void dfs(int k, int s){
if(k > n){
ans += s == (1<<m)-1;
}//最终全选即可
else{
dfs(k+1, s);
dfs(k+1, s|a[k]);
}
}//不会状态压缩,暴力标记回溯也行
int main(){
scanf("%d%d", &m, &n);
for(i=1; i<=n; i++){
scanf("%d", &j);
while(j--){
scanf("%d", &k);
a[i] |= 1 << k-1;
}//所选数字的状态
}
dfs(1, 0);
printf("%d\n", ans);
return 0;
}