#include <iostream>
#include <cstring>
#include <string>
#include <algorithm>
#include <map>
#include <vector>
using namespace std;
struct xx{
int a;
int b;
}node[11111];
bool cmp(xx x1,xx x2){
if(x1.a!=x2.a){
return x1.a<x2.a;
}else if(x1.b!=x2.b){
return x1.b<x2.b;
}
}
int main(){
int i,j,k,l,n,m;
scanf("%d%d",&n,&m);
vector<struct xx> v;
int a[1111];
for(i=0;i<n;i++){
scanf("%d %d",&node[i].a,&node[i].b);
v.push_back(node[i]); //将每一个结构体插入到vector中
}
sort(v.begin(),v.end(),cmp); //排序方便查找
int flag=0;
for(i=0;i<m;i++){
scanf("%d",&k);
flag=0;
memset(a,0,sizeof(a));
for(j=0;j<k;j++){
scanf("%d",&a[j]);
}
for(j=0;j<k;j++){
for(l=0;l<n;l++){
if(a[j]>v[n-1].a){ //减少不必要的查询
break;
}
if(a[j]==v[l].a){
for(int z=0;z!=j&&z<k;z++){
if(a[z]==v[l].b){
flag=1;
break;
}
}
if(flag){
break;
}
}
}
if(flag){
break;
}
}
if(flag){
printf("No\n");
}else{
printf("Yes\n");
}
}
return 0;
}