//##### ##### ##### ##### ##### # ##### # #//
//# # # # # # # # # # # ## ##//
//##### ##### ##### # ##### # ##### # # #//
//## # # # # # # # # # # #//
//# # # # # # # # # # # # #//
//# # # # # # # # # # # # #//
//# # # # ##### ##### # # ##### # # # #//
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define mod 1000000007
#define pb push_back
#define ppb pop_back
#define cs(n) cout<<n<<" "
#define cn(n) cout<<n<<"\n"
#define rep(i,j,k) for(int i=j;i<k;i++)
#define rrep(i,j,k) for(int i=j;i>=k;i--)
#define fastio ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
#define N 100005
#define stime s1time
int n;
vector<int>v[N];
int totka = 0;
int stime[N];
int etime[N];
int ftree[2 * N];
int par[N];
int lca[N][20];
int val[N];
int level[N];
bool visited[N] = {0};
int freq[N] = {0};
int colfreq[N] = {0};
int blk = 0;
map<int , bool>mp;
ll bin(ll a, ll b)
{
if (b == 0)
return 1;
if (b % 2 == 0)
return bin((a * a) % mod , b / 2) % mod;
return ((a % mod) * (bin((a * a) % mod , b / 2) % mod)) % mod;
}
bool comp(pair<pair<int , int>, pair<pair<int , int> , int> > a, pair<pair<int , int>, pair<pair<int , int> , int> > b) {
if (a.first.first / blk != b.first.first)
return a.first.first < b.first.first;
return a.first.second < b.first.second;
}
void dfs(int i , int l , int p) {
par[i] = p;
level[i] = l;
totka++;
stime[i] = totka;
ftree[totka] = i;
visited[i] = true;
for (auto k : v[i]) {
if (visited[k] == false)
dfs(k, l + 1, i);
}
totka++;
etime[i] = totka;
ftree[totka] = i;
}
int la(int a, int b) {
if (level[a] > level[b]) {
swap(a, b);
}
int l = level[b] - level[a];
while (l > 0) {
int j = log2(l);
b = lca[b][j];
l -= bin(2, j);
}
if (a == b) {
return a;
}
rrep(i, 19, 0) {
if (lca[a][i] != -1 && lca[b][i] != -1 && lca[a][i] != lca[b][i]) {
a = lca[a][i];
b = lca[b][i];
}
}
return par[a];
}
void add(int a) {
freq[a]++;
if (freq[a] == 1) {
colfreq[val[a]]++;
}
else if (freq[a] == 2) {
colfreq[val[a]]--;
}
}
void remove(int a) {
freq[a]--;
if (freq[a] == 0) {
colfreq[val[a]]--;
}
else if (freq[a] == 1) {
colfreq[val[a]]++;
}
}
void solve()
{
int m;
cin >> m;
double ieou = ceil(sqrt(2 * n));
totka = 0;
rep(i, 0, n) {
v[i].clear();
}
memset(visited, 0, sizeof(visited));
memset(freq, 0, sizeof(freq));
memset(colfreq, 0, sizeof(colfreq));
blk = (int)ieou;
rep(i, 1, n + 1)
cin >> val[i];
rep(i, 0, n - 1) {
int a, b;
cin >> a >> b;
v[a].pb(b);
v[b].pb(a);
}
dfs(1, 0, -1);
memset(lca, -1, sizeof(lca));
rep(i, 0, 20) {
rep(j, 1, n + 1) {
if (i == 0) {
lca[j][i] = par[j];
}
else {
if (lca[j][i - 1] == -1)
lca[j][i] = -1;
else
lca[j][i] = lca[lca[j][i - 1]][i - 1];
}
}
}
vector<pair<pair<int , int>, pair<pair<int , int> , int> > >v1;
rep(i, 1, m + 1) {
int a, b, c;
cin >> a >> b >> c;
int d = la(a, b);
if (d != a && d != b) {
if (stime[a] > stime[b]) {
swap(a, b);
}
v1.pb({{etime[a], stime[b]}, {{d, c}, i}});
}
else {
if (stime[a] > stime[b]) {
swap(a, b);
}
v1.pb({{stime[a], stime[b]}, {{ -1, c}, i}});
}
}
sort(v1.begin(), v1.end(), comp);
int ml = 1, mr = 0;
rep(i, 0, v1.size()) {
int l = v1[i].first.first;
int r = v1[i].first.second;
while (mr < r) {
mr++;
add(ftree[mr]);
}
while (l < ml) {
ml--;
add(ftree[ml]);
}
while (r < mr) {
remove(ftree[mr]);
mr--;
}
while (l > ml) {
remove(ftree[ml]);
ml++;
}
int c = v1[i].second.first.first;
int f = v1[i].second.first.second;
if (c != -1) {
if (f == val[c] || colfreq[f] > 0)
mp[v1[i].second.second] = true;
else
mp[v1[i].second.second] = false;
}
else {
if (colfreq[f] > 0)
mp[v1[i].second.second] = true;
else
mp[v1[i].second.second] = false;
}
}
rep(i, 1, m + 1) {
if (mp[i])
cout << "Find" << "\n";
else
cout << "NotFind" << "\n";
}
}
int main()
{
#ifndef ONLINE_JUDGE
freopen("input.txt", "r" , stdin);
freopen("output.txt" , "w" , stdout);
#endif
fastio;
int t;
//cin >> t;
t = 0;
while (cin >> n)
{
if (t > 0) {
cout << endl;
}
solve();
t++;
}
return 0;
}
Ly8jIyMjIyAgICMjIyMjICAgIyMjIyMgICAjIyMjIyAgICMjIyMjICAgIyAgICAgICAjIyMjIyAgICMgICAjLy8KLy8jICAgIyAgICMgICAjICAgIyAgICAgICAjICAgICAgICMgICAjICAgIyAgICAgICAjICAgIyAgICMjICMjLy8KLy8jIyMjIyAgICMjIyMjICAgIyMjIyMgICAjICAgICAgICMjIyMjICAgIyAgICAgICAjIyMjIyAgICMgIyAjLy8KLy8jIyAgICAgICMgICAjICAgICAgICMgICAjICAgICAgICMgICAjICAgIyAgICAgICAjICAgIyAgICMgICAjLy8KLy8jICMgICAgICMgICAjICAgICAgICMgICAjICAgICAgICMgICAjICAgIyAgICAgICAjICAgIyAgICMgICAjLy8KLy8jICAjICAgICMgICAjICAgICAgICMgICAjICAgICAgICMgICAjICAgIyAgICAgICAjICAgIyAgICMgICAjLy8KLy8jICAgIyAgICMgICAjICAgIyMjIyMgICAjIyMjIyAgICMgICAjICAgIyMjIyMgICAjICAgIyAgICMgICAjLy8KCgojaW5jbHVkZTxiaXRzL3N0ZGMrKy5oPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwojZGVmaW5lIGxsIGxvbmcgbG9uZwojZGVmaW5lIG1vZCAxMDAwMDAwMDA3CiNkZWZpbmUgcGIgcHVzaF9iYWNrCiNkZWZpbmUgcHBiIHBvcF9iYWNrCiNkZWZpbmUgY3MobikgY291dDw8bjw8IiAiCiNkZWZpbmUgY24obikgY291dDw8bjw8IlxuIgojZGVmaW5lIHJlcChpLGosaykgZm9yKGludCBpPWo7aTxrO2krKykKI2RlZmluZSBycmVwKGksaixrKSBmb3IoaW50IGk9ajtpPj1rO2ktLSkKI2RlZmluZSBmYXN0aW8gaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7IGNpbi50aWUoTlVMTCk7IGNvdXQudGllKE5VTEwpOwojZGVmaW5lIE4gMTAwMDA1CiNkZWZpbmUgc3RpbWUgczF0aW1lCmludCBuOwp2ZWN0b3I8aW50PnZbTl07CmludCB0b3RrYSA9IDA7CmludCBzdGltZVtOXTsKaW50IGV0aW1lW05dOwppbnQgZnRyZWVbMiAqIE5dOwppbnQgcGFyW05dOwppbnQgbGNhW05dWzIwXTsKaW50IHZhbFtOXTsKaW50IGxldmVsW05dOwpib29sIHZpc2l0ZWRbTl0gPSB7MH07CmludCBmcmVxW05dID0gezB9OwppbnQgY29sZnJlcVtOXSA9IHswfTsKaW50IGJsayA9IDA7Cm1hcDxpbnQgLCBib29sPm1wOwpsbCBiaW4obGwgYSwgbGwgYikKewoJaWYgKGIgPT0gMCkKCQlyZXR1cm4gMTsKCWlmIChiICUgMiA9PSAwKQoJCXJldHVybiBiaW4oKGEgKiBhKSAlIG1vZCAsIGIgLyAyKSAlIG1vZDsKCXJldHVybiAoKGEgJSBtb2QpICogKGJpbigoYSAqIGEpICUgbW9kICwgYiAvIDIpICUgbW9kKSkgJSBtb2Q7Cn0KYm9vbCBjb21wKHBhaXI8cGFpcjxpbnQgLCBpbnQ+LCBwYWlyPHBhaXI8aW50ICwgaW50PiAsIGludD4gPiBhLCBwYWlyPHBhaXI8aW50ICwgaW50PiwgcGFpcjxwYWlyPGludCAsIGludD4gLCBpbnQ+ID4gYikgewoJaWYgKGEuZmlyc3QuZmlyc3QgLyBibGsgIT0gYi5maXJzdC5maXJzdCkKCQlyZXR1cm4gYS5maXJzdC5maXJzdCA8IGIuZmlyc3QuZmlyc3Q7CglyZXR1cm4gYS5maXJzdC5zZWNvbmQgPCBiLmZpcnN0LnNlY29uZDsKfQp2b2lkIGRmcyhpbnQgaSAsIGludCBsICwgaW50IHApIHsKCXBhcltpXSA9IHA7CglsZXZlbFtpXSA9IGw7Cgl0b3RrYSsrOwoJc3RpbWVbaV0gPSB0b3RrYTsKCWZ0cmVlW3RvdGthXSA9IGk7Cgl2aXNpdGVkW2ldID0gdHJ1ZTsKCWZvciAoYXV0byBrIDogdltpXSkgewoJCWlmICh2aXNpdGVkW2tdID09IGZhbHNlKQoJCQlkZnMoaywgbCArIDEsIGkpOwoJfQoJdG90a2ErKzsKCWV0aW1lW2ldID0gdG90a2E7CglmdHJlZVt0b3RrYV0gPSBpOwp9CmludCBsYShpbnQgYSwgaW50IGIpIHsKCWlmIChsZXZlbFthXSA+IGxldmVsW2JdKSB7CgkJc3dhcChhLCBiKTsKCX0KCWludCBsID0gbGV2ZWxbYl0gLSBsZXZlbFthXTsKCXdoaWxlIChsID4gMCkgewoJCWludCBqID0gbG9nMihsKTsKCQliID0gbGNhW2JdW2pdOwoJCWwgLT0gYmluKDIsIGopOwoJfQoJaWYgKGEgPT0gYikgewoJCXJldHVybiBhOwoJfQoJcnJlcChpLCAxOSwgMCkgewoJCWlmIChsY2FbYV1baV0gIT0gLTEgJiYgbGNhW2JdW2ldICE9IC0xICYmIGxjYVthXVtpXSAhPSBsY2FbYl1baV0pIHsKCQkJYSA9IGxjYVthXVtpXTsKCQkJYiA9IGxjYVtiXVtpXTsKCQl9Cgl9CglyZXR1cm4gcGFyW2FdOwp9CnZvaWQgYWRkKGludCBhKSB7CglmcmVxW2FdKys7CglpZiAoZnJlcVthXSA9PSAxKSB7CgkJY29sZnJlcVt2YWxbYV1dKys7Cgl9CgllbHNlIGlmIChmcmVxW2FdID09IDIpIHsKCQljb2xmcmVxW3ZhbFthXV0tLTsKCX0KfQp2b2lkIHJlbW92ZShpbnQgYSkgewoJZnJlcVthXS0tOwoJaWYgKGZyZXFbYV0gPT0gMCkgewoJCWNvbGZyZXFbdmFsW2FdXS0tOwoJfQoJZWxzZSBpZiAoZnJlcVthXSA9PSAxKSB7CgkJY29sZnJlcVt2YWxbYV1dKys7Cgl9Cn0Kdm9pZCBzb2x2ZSgpCnsKCWludCBtOwoJY2luID4+IG07Cglkb3VibGUgaWVvdSA9IGNlaWwoc3FydCgyICogbikpOwoJdG90a2EgPSAwOwoJcmVwKGksIDAsIG4pIHsKCQl2W2ldLmNsZWFyKCk7Cgl9CgltZW1zZXQodmlzaXRlZCwgMCwgc2l6ZW9mKHZpc2l0ZWQpKTsKCW1lbXNldChmcmVxLCAwLCBzaXplb2YoZnJlcSkpOwoJbWVtc2V0KGNvbGZyZXEsIDAsIHNpemVvZihjb2xmcmVxKSk7CglibGsgPSAoaW50KWllb3U7CglyZXAoaSwgMSwgbiArIDEpCgljaW4gPj4gdmFsW2ldOwoJcmVwKGksIDAsIG4gLSAxKSB7CgkJaW50IGEsIGI7CgkJY2luID4+IGEgPj4gYjsKCQl2W2FdLnBiKGIpOwoJCXZbYl0ucGIoYSk7Cgl9CglkZnMoMSwgMCwgLTEpOwoJbWVtc2V0KGxjYSwgLTEsIHNpemVvZihsY2EpKTsKCXJlcChpLCAwLCAyMCkgewoJCXJlcChqLCAxLCBuICsgMSkgewoJCQlpZiAoaSA9PSAwKSB7CgkJCQlsY2Fbal1baV0gPSBwYXJbal07CgkJCX0KCQkJZWxzZSB7CgkJCQlpZiAobGNhW2pdW2kgLSAxXSA9PSAtMSkKCQkJCQlsY2Fbal1baV0gPSAtMTsKCQkJCWVsc2UKCQkJCQlsY2Fbal1baV0gPSBsY2FbbGNhW2pdW2kgLSAxXV1baSAtIDFdOwoJCQl9CgkJfQoJfQoJdmVjdG9yPHBhaXI8cGFpcjxpbnQgLCBpbnQ+LCBwYWlyPHBhaXI8aW50ICwgaW50PiAsIGludD4gPiA+djE7CglyZXAoaSwgMSwgbSArIDEpIHsKCQlpbnQgYSwgYiwgYzsKCQljaW4gPj4gYSA+PiBiID4+IGM7CgkJaW50IGQgPSBsYShhLCBiKTsKCQlpZiAoZCAhPSBhICYmIGQgIT0gYikgewoJCQlpZiAoc3RpbWVbYV0gPiBzdGltZVtiXSkgewoJCQkJc3dhcChhLCBiKTsKCQkJfQoJCQl2MS5wYih7e2V0aW1lW2FdLCBzdGltZVtiXX0sIHt7ZCwgY30sIGl9fSk7CgkJfQoJCWVsc2UgewoJCQlpZiAoc3RpbWVbYV0gPiBzdGltZVtiXSkgewoJCQkJc3dhcChhLCBiKTsKCQkJfQoJCQl2MS5wYih7e3N0aW1lW2FdLCBzdGltZVtiXX0sIHt7IC0xLCBjfSwgaX19KTsKCQl9Cgl9Cglzb3J0KHYxLmJlZ2luKCksIHYxLmVuZCgpLCBjb21wKTsKCWludCBtbCA9IDEsIG1yID0gMDsKCXJlcChpLCAwLCB2MS5zaXplKCkpIHsKCQlpbnQgbCA9IHYxW2ldLmZpcnN0LmZpcnN0OwoJCWludCByID0gdjFbaV0uZmlyc3Quc2Vjb25kOwoJCXdoaWxlIChtciA8IHIpIHsKCQkJbXIrKzsKCQkJYWRkKGZ0cmVlW21yXSk7CgkJfQoJCXdoaWxlIChsIDwgbWwpIHsKCQkJbWwtLTsKCQkJYWRkKGZ0cmVlW21sXSk7CgkJfQoJCXdoaWxlIChyIDwgbXIpIHsKCQkJcmVtb3ZlKGZ0cmVlW21yXSk7CgkJCW1yLS07CgkJfQoJCXdoaWxlIChsID4gbWwpIHsKCQkJcmVtb3ZlKGZ0cmVlW21sXSk7CgkJCW1sKys7CgkJfQoJCWludCBjID0gdjFbaV0uc2Vjb25kLmZpcnN0LmZpcnN0OwoJCWludCBmID0gdjFbaV0uc2Vjb25kLmZpcnN0LnNlY29uZDsKCQlpZiAoYyAhPSAtMSkgewoJCQlpZiAoZiA9PSB2YWxbY10gfHwgY29sZnJlcVtmXSA+IDApCgkJCQltcFt2MVtpXS5zZWNvbmQuc2Vjb25kXSA9IHRydWU7CgkJCWVsc2UKCQkJCW1wW3YxW2ldLnNlY29uZC5zZWNvbmRdID0gZmFsc2U7CgkJfQoJCWVsc2UgewoJCQlpZiAoY29sZnJlcVtmXSA+IDApCgkJCQltcFt2MVtpXS5zZWNvbmQuc2Vjb25kXSA9IHRydWU7CgkJCWVsc2UKCQkJCW1wW3YxW2ldLnNlY29uZC5zZWNvbmRdID0gZmFsc2U7CgkJfQoJfQoJcmVwKGksIDEsIG0gKyAxKSB7CgkJaWYgKG1wW2ldKQoJCQljb3V0IDw8ICJGaW5kIiA8PCAiXG4iOwoJCWVsc2UKCQkJY291dCA8PCAiTm90RmluZCIgPDwgIlxuIjsKCX0KfQppbnQgbWFpbigpCnsKI2lmbmRlZiBPTkxJTkVfSlVER0UKCWZyZW9wZW4oImlucHV0LnR4dCIsICJyIiAsIHN0ZGluKTsKCWZyZW9wZW4oIm91dHB1dC50eHQiICwgInciICwgc3Rkb3V0KTsKI2VuZGlmCglmYXN0aW87CglpbnQgdDsKCS8vY2luID4+IHQ7Cgl0ID0gMDsKCXdoaWxlIChjaW4gPj4gbikKCXsKCQlpZiAodCA+IDApIHsKCQkJY291dCA8PCBlbmRsOwoJCX0KCQlzb2x2ZSgpOwoJCXQrKzsKCX0KCXJldHVybiAwOwp9