#include <stdio.h>
#include <math.h>
#include <string.h>
#define fin "balanta.in"
#define fout "balanta.out"
#define FOR(i,a,b) for( i = (a) ; i <= (b) ; ++i )
int v[1025], st[513],dr[513];
int big[1025],small[1025];
int main()
{
freopen(fin,"r",stdin);
freopen(fout,"w",stdout);
int n,m,k,i,j,r,stx,drx;
scanf("%i%i", &n,&m);
FOR(i,1,n)
small[i] = big[i] = 1;
FOR(i,1,m)
{
scanf("%i",&k);
memset(&st,0,sizeof(st));
memset(&dr,0,sizeof(dr));
FOR(j,1,k)
scanf("%i",&stx), st[stx] = 1;
FOR(j,1,k)
scanf("%i",&drx), dr[drx] = 1;;
scanf("%i",&r);
if(r == 0)
FOR(j,1,k)
{
small[st[j]] = 0;
small[dr[j]] = 0;
big[st[j]] = 0;
big[dr[j]] = 0;
}
if(r == 2)
FOR(j,1,n)
{
small[j] &= st[j];
big[j] &= dr[j];
}
if(r == 1)
FOR(j,1,n)
{
small[j] &= dr[j];
big[j] &= st[j];
}
}
stx = 0;
drx = 0;
FOR(i,1,n)
{
stx+=st[i];
drx+=dr[i];
}
if((stx == 1)&&(drx == 1))
{
FOR(i,1,n)
if(st[i])
{
printf("%d\n", i);
return 0;
}
}
if((stx == 0)&&(drx == 1))
{
FOR(i,1,n)
if(dr[i])
{
printf("%d\n", i);
return 0;
}
}
printf("0\n");
return 0;
}
//by Crawler