#include <iostream>
#include <vector>
#include <map>
using namespace std;
int main(){
int n,k,t1,t2;
map<int,vector<int>> m;
//建立int和vector数组的映射map
scanf("%d%d",&n,&k); //输入"不相容"组数n和要查询的组数k
for(int i=0;i<n;i++){
scanf("%d%d",&t1,&t2);//输入"不相容"的2个货物
m[t1].push_back(t2);//把一个货物t2放入map的key为t1对应的vector中
m[t2].push_back(t1);//把一个货物t1放入map的key为t2对应的vector中
}
while(k--){ //输入3次即查询3次
int cnt,flag=0,a[100000]={0};
scanf("%d",&cnt);
vector<int> v(cnt);
for(int i=0;i<cnt;i++){
scanf("%d",&v[i]);//循环输入"不相容"的五位数
a[v[i]]=1;//将对应五位数为下标的数组元素设为1
}
for(int i=0;i<v.size();i++)
//例子中的size=cnt即一次查询的五位数个数
for(int j=0;j<m[ v[i] ].size();j++)
//注意循环内次数为map的key为某五位数的value大小(vector大小)
if( a[ m[v[i]] [j] ]==1 ) {//注:判断的是---v[i]为key的map对应的value(是一个vector数组)的第j个元素
flag=1;
}
printf("%s\n",flag?"No":"Yes");
}
system("pause");
return 0;
}