#include <iostream>
#include<vector>
#include<cstdio>
using namespace std;
const int maxv = 100010;
vector<int> no[maxv];
vector<int> vis;
vector<int> req;
int n, m;
void init(){
scanf("%d%d",&n, &m);
for(int i = 0; i < n; i++){
int a, b;
scanf("%d%d",&a,&b);
no[a].push_back(b);
no[b].push_back(a);
}
}
void check(){
vis.clear();
req.clear();
vis.resize(maxv);
vector<int> temp;
int k;
scanf("%d",&k);
for(int i = 0; i < k; i++){
int a;
scanf("%d",&a);
vis[a] = 1;
req.push_back(a);
}
for(int i = 0; i < req.size(); i++){//用K的话可以嘛? 可以用 k
temp = no[req[i]];
for(int j = 0; j < temp.size(); j++){
if(vis[temp[j]] == 1) {
printf("No\n");
return;
}
}
}
printf("Yes\n");
}
int main()
{
init();
while(m--){
check();
}
//cout << maxv << endl;
return 0;
}