#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,m,t1,t2;
cin>>n>>m;
map<int,vector<int>> mp;//一个物品(int)可能有多个不兼容的货物(vector<int>)
for(int i=0;i<n;i++)
{
cin>>t1>>t2;//两个不相容的物品编号
mp[t1].push_back(t2);
mp[t2].push_back(t1);
}
while(m--){//挨个遍历所有清单
int cnt,flag=0,a[99999]={0};//物品的编号一个5位数的编号代表
cin>>cnt;
vector<int> v(cnt);//存放这个清单的所有物品编号
for(int i=0;i<cnt;i++){
cin>>v[i];
a[v[i]]=1;//标记物品编号对应的位置为1,表示存在在当前清单中
}
for(int i=0;i<v.size();i++)//遍历当前清单的所有物品
for(int j=0;j<mp[v[i]].size();j++)//遍历与这个物品不相容的所有物品
if(a[ mp[ v[i] ][j] ]==1)//在第i个物品的不相容容器vector中
flag=1; //第j个不相容物品在当前清单内;
//简单地说,不相容物品表中有一对不相容物品
//存在在当前清单内
printf("%s\n",flag?"No":"Yes");
}
return 0;
}