#include<cstdio>
#include<cstring>
int n,m,u[1500],gr[1500],st[1500],dr[1500],stok[1500],drok[1500],i,j,nu,ng,w,k,ok,n1,n2;
FILE *f,*g;
int main(){
f=fopen("balanta.in","r");
g=fopen("balanta.out","w");
fscanf(f,"%d%d",&n,&m);
for(i=1;i<=n;i++){
u[i]=1;
gr[i]=1;
}
for(i=1;i<=m;i++){
fscanf(f,"%d",&k);
memset(stok,0,sizeof(stok));
memset(drok,1,sizeof(drok));
for(j=1;j<=k;j++){
fscanf(f,"%d",&st[j]);
stok[st[j]]=1;
}
for(j=1;j<=k;j++){
fscanf(f,"%d",&dr[j]);
drok[dr[j]]=1;
}
fscanf(f,"%d",&w);
if(w==0){
for(j=1;j<=k;j++){
u[st[j]]=0;
gr[st[j]]=0;
u[dr[j]]=0;
gr[dr[j]]=0;
}
}
else if(w==1){
for(j=1;j<=n;j++){
if(stok[j]==1)
gr[j]=0;
if(drok[j]==1)
u[j]=0;
}
}
else{
for(j=1;j<=n;j++){
if(stok[j]==1)
u[j]=0;
if(drok[j]==1)
gr[j]=0;
}
}
}
for(i=1;i<=n;i++){
if(u[i]==1){
nu++;
n1=i;
}
if(gr[i]==1){
ng++;
n2=i;
}
}
if(nu!=1&&ng!=1)
fprintf(g,"0");
else
if(nu==1)
fprintf(g,"%d",n1);
else
fprintf(g,"%d",n2);
fclose(f);
fclose(g);
return 0;
}