#include <iostream>
#include <vector>
#include <map>
using namespace std;
int main() {
int n, k, t1, t2;
map<int, vector<int>> m; // 创建邻接表
cin >> n >> k; // 读取n和k
for(int i = 0; i < n; i++) {
cin >> t1 >> t2;
m[t1].push_back(t2);
m[t2].push_back(t1);
}
while(k--) {
int cnt;
int flag = 0;
int a[100000] = {0}; // 记录哪些顶点在当前查询中
cin >> cnt;
vector<int> v(cnt);
for(int i = 0; i < cnt; i++) {
cin >> v[i];
a[v[i]] = 1;
}
// 查询是否存在冲突
for(int i = 0; i < cnt; i++) {
for(int j = 0; j < m[v[i]].size(); j++) {
if(a[m[v[i]][j]] == 1) {
flag = 1;
break;
}
}
if(flag == 1) break; // 发现冲突,提前结束
}
if(flag == 1) {
cout << "No" << endl;
} else {
cout << "Yes" << endl;
}
}
return 0;
}