#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
const int MAXN = 200005;
vector<int> adj[MAXN];
int tin[MAXN], tout[MAXN], parent[MAXN], depth[MAXN];
int timer;
void dfs(int v, int p, int d) {
tin[v] = ++timer;
parent[v] = p;
depth[v] = d;
for (int u : adj[v]) {
if (u != p) {
dfs(u, v, d + 1);
}
}
tout[v] = ++timer;
}
bool is_ancestor(int u, int v) {
return tin[u] <= tin[v] && tout[u] >= tout[v];
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int n, m;
cin >> n >> m;
for (int i = 0; i < n - 1; ++i) {
int u, v;
cin >> u >> v;
adj[u].push_back(v);
adj[v].push_back(u);
}
dfs(1, 1, 0);
while (m--) {
int k;
cin >> k;
vector<int> v(k);
int deepest_node = -1;
int max_depth = -1;
for (int i = 0; i < k; ++i) {
cin >> v[i];
// Zamieniamy wierzchołek na jego ojca
v[i] = parent[v[i]];
// Szukamy najgłębszego wierzchołka w zbiorze ojców
if (depth[v[i]] > max_depth) {
max_depth = depth[v[i]];
deepest_node = v[i];
}
}
bool possible = true;
for (int node : v) {
// Sprawdzamy, czy każdy "ojciec" jest przodkiem najgłębszego "ojca"
if (!is_ancestor(node, deepest_node)) {
possible = false;
break;
}
}
if (possible) cout << "TAK\n";
else cout << "NIE\n";
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8YWxnb3JpdGhtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNvbnN0IGludCBNQVhOID0gMjAwMDA1Owp2ZWN0b3I8aW50PiBhZGpbTUFYTl07CmludCB0aW5bTUFYTl0sIHRvdXRbTUFYTl0sIHBhcmVudFtNQVhOXSwgZGVwdGhbTUFYTl07CmludCB0aW1lcjsKCnZvaWQgZGZzKGludCB2LCBpbnQgcCwgaW50IGQpIHsKICAgIHRpblt2XSA9ICsrdGltZXI7CiAgICBwYXJlbnRbdl0gPSBwOwogICAgZGVwdGhbdl0gPSBkOwogICAgZm9yIChpbnQgdSA6IGFkalt2XSkgewogICAgICAgIGlmICh1ICE9IHApIHsKICAgICAgICAgICAgZGZzKHUsIHYsIGQgKyAxKTsKICAgICAgICB9CiAgICB9CiAgICB0b3V0W3ZdID0gKyt0aW1lcjsKfQoKYm9vbCBpc19hbmNlc3RvcihpbnQgdSwgaW50IHYpIHsKICAgIHJldHVybiB0aW5bdV0gPD0gdGluW3ZdICYmIHRvdXRbdV0gPj0gdG91dFt2XTsKfQoKaW50IG1haW4oKSB7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUoTlVMTCk7CgogICAgaW50IG4sIG07CiAgICBjaW4gPj4gbiA+PiBtOwoKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbiAtIDE7ICsraSkgewogICAgICAgIGludCB1LCB2OwogICAgICAgIGNpbiA+PiB1ID4+IHY7CiAgICAgICAgYWRqW3VdLnB1c2hfYmFjayh2KTsKICAgICAgICBhZGpbdl0ucHVzaF9iYWNrKHUpOwogICAgfQoKICAgIGRmcygxLCAxLCAwKTsKCiAgICB3aGlsZSAobS0tKSB7CiAgICAgICAgaW50IGs7CiAgICAgICAgY2luID4+IGs7CiAgICAgICAgdmVjdG9yPGludD4gdihrKTsKICAgICAgICBpbnQgZGVlcGVzdF9ub2RlID0gLTE7CiAgICAgICAgaW50IG1heF9kZXB0aCA9IC0xOwoKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGs7ICsraSkgewogICAgICAgICAgICBjaW4gPj4gdltpXTsKICAgICAgICAgICAgLy8gWmFtaWVuaWFteSB3aWVyemNob8WCZWsgbmEgamVnbyBvamNhCiAgICAgICAgICAgIHZbaV0gPSBwYXJlbnRbdltpXV07CiAgICAgICAgICAgIC8vIFN6dWthbXkgbmFqZ8WCxJlic3plZ28gd2llcnpjaG/FgmthIHcgemJpb3J6ZSBvamPDs3cKICAgICAgICAgICAgaWYgKGRlcHRoW3ZbaV1dID4gbWF4X2RlcHRoKSB7CiAgICAgICAgICAgICAgICBtYXhfZGVwdGggPSBkZXB0aFt2W2ldXTsKICAgICAgICAgICAgICAgIGRlZXBlc3Rfbm9kZSA9IHZbaV07CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGJvb2wgcG9zc2libGUgPSB0cnVlOwogICAgICAgIGZvciAoaW50IG5vZGUgOiB2KSB7CiAgICAgICAgICAgIC8vIFNwcmF3ZHphbXksIGN6eSBrYcW8ZHkgIm9qY2llYyIgamVzdCBwcnpvZGtpZW0gbmFqZ8WCxJlic3plZ28gIm9qY2EiCiAgICAgICAgICAgIGlmICghaXNfYW5jZXN0b3Iobm9kZSwgZGVlcGVzdF9ub2RlKSkgewogICAgICAgICAgICAgICAgcG9zc2libGUgPSBmYWxzZTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZiAocG9zc2libGUpIGNvdXQgPDwgIlRBS1xuIjsKICAgICAgICBlbHNlIGNvdXQgPDwgIk5JRVxuIjsKICAgIH0KCiAgICByZXR1cm4gMDsKfQ==