#include<stdio.h>
#include<stdlib.h>
#define NM 1025
#define LSIR NM*4
typedef int set[NM];
int apartine(int x,set a){
int i=1,j=a[0],mij;
while(i<=j){
mij=(i+j)/2;
if(a[mij]==x) return 1;
else
if(x>a[mij]) i=mij+1;
else j=mij-1;
}
return 0;
}
void intersectie(set a,set b,set c){
int i;
c[0]=0;
for(i=1;i<=a[0];++i)
if(apartine(a[i],b)) c[0]++,c[c[0]]=a[i];
}
void copy(set src,set dest){
int i;
for(i=0;i<=src[0];++i) dest[i]=src[i];
}
void dif(set a,set b,set c){
int i;c[0]=0;
for(i=1;i<=a[0];++i)
if(!apartine(a[i],b)) c[0]++,c[c[0]]=a[i];
}
int main(){
freopen("balanta.in","r",stdin);
freopen("balanta.out","w",stdout);
int i,k,s;
int n,m,l=0,h=0,mu,mg;
char sir[LSIR],*p;
mu=mg=0;
scanf("%d%d\n",&n,&m);
set st,dr,u,g,a;
for(i=1;i<=n;++i) u[i]=g[i]=i;
u[0]=g[0]=n;
while(m--){
fgets(sir,LSIR,stdin); p=sir;
k=atoi(p);
while(*p!=32) p++;p++;
for(i=1;i<=k;++i){
st[i]=atoi(p);
while(*p!=32) p++;p++;
}
for(i=1;i<=k;++i){
dr[i]=atoi(p);
while(*p!=32) p++;p++;
}
st[0]=dr[0]=k;
s=atoi(p);
if(!s){
dif(u,st,a);copy(a,u);
dif(u,dr,a);copy(a,u);
dif(g,st,a);copy(a,g);
dif(g,dr,a);copy(a,g);
continue;
}
if(s==1){
intersectie(g,st,a);
copy(a,g);
intersectie(u,dr,a);
copy(a,u);
}
else{
intersectie(u,st,a);
copy(a,u);
intersectie(g,dr,a);
copy(a,g);
}
}
l=u[0],h=g[0],mu=u[1],mg=g[1];
if(l==1&&h==0) printf("%d",mu);
else
if(l==0&&h==1) printf("%d",mg);
else printf("0");
return 0;
}