#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define prec(n) fixed<<setprecision(n)
#define optimize ios::sync_with_stdio(0); cin.tie(0);
#define PI acos(-1.0)
#define RESET(a, b) memset(a, b, sizeof(a))
#define pb push_back
#define sz(v) v.size()
#define pii pair<int,int>
#define ff first
#define ss second
#define vv vector<int>
#define all(v) v.begin(),v.end()
int const MAXN=120001;
int const MAXQ=250001;
int const LN=20;
int ID[2*MAXN],st[MAXN],en[MAXN],level[MAXN],a[MAXN];
int dp[MAXN][LN],vis[MAXN];
vv g[MAXN];
int Map[MAXN];
int ANS[MAXN];
int n,q,K,cur;
struct Query{
int index, L, R,lc,val;
bool operator < (const Query &other) const {
int block_own = L/K;
int block_other = other.L/K;
if(block_own == block_other)
return R < other.R;
return block_own < block_other;
}
}Q[MAXQ];
void dfs(int u,int p){
st[u]= ++cur;
ID[cur]=u;
//T[u]=p;
level[u]=level[p]+1;
dp[u][0] = p;
for(int i=1; i<LN; ++i)
dp[u][i] = dp[dp[u][i-1]][i-1];
for(int i=0;i<g[u].size();i++){
int x=g[u][i];
if(x==p) continue;
dfs(x,u);
}
en[u]= ++cur;
ID[cur]=u;
}
int lca(int u, int v) {
if(level[u] < level[v])
swap(u, v);
int diff = level[u] - level[v];
for(int i=0; i<LN; ++i) {
if((1<<i) & diff)
u = dp[u][i];
}
if(u == v)
return u;
for(int i=LN-1; i>=0; --i) {
if(dp[u][i] != dp[v][i]) {
u = dp[u][i];
v = dp[v][i];
}
}
return dp[u][0];
}
void add(int x){
if(vis[x]==0){
Map[a[x]]=1;
vis[x]=1;
}
else{
Map[a[x]]=0;
vis[x]=0;
}
}
void mos(){
for(int i=0;i<q;i++){
int cl=1,cr=0;
while(cr<=Q[i].R) add(ID[++cr]);
while(cl<Q[i].L) add(ID[cl++]);
while(cr>=Q[i].R) add(ID[cr--]);
while(cl>Q[i].L) add(ID[--cl]);
int u= ID[cl],v=ID[cr];
if(Q[i].lc!=u && Q[i].lc!=v) add(Q[i].lc);
//cout<<Map[Q[i].val]<<endl;
if(Map[Q[i].val]==1){
//cout<<"yes"<<endl;
ANS[Q[i].index]=1;
}
if(Q[i].lc!=u && Q[i].lc!=v) add(Q[i].lc);
}
}
int main()
{
while((scanf("%d%d",&n,&q))!=EOF){
for(int i=1;i<=n;i++){
scanf("%d",&a[i]);
}
for(int i=1;i<=n;i++){
g[i].clear();
vis[i]=0;
Map[i]=0;
level[i]=0;
}
for(int i=0;i<=n;i++){
for(int j=0;j<=LN;j++) dp[i][j]=0;
}
for(int i=1;i<=n-1;i++){
int x,y;
scanf("%d%d",&x,&y);
g[x].pb(y);
g[y].pb(x);
}
cur=0;
dfs(1,-1);
//for(int i=1;i<=10;i++) cout<<ID[i]<<" ";
for(int i=0;i<q;i++){
int x,y,v1;
scanf("%d%d%d",&x,&y,&v1);
Q[i].index=i;
Q[i].val=v1;
Q[i].lc=lca(x,y);
//cout<<Q[i].lc<<endl;
if(st[x]>st[y]) swap(x,y);
if(Q[i].lc==x){
Q[i].L=st[x];
Q[i].R=st[y];
}
else{
Q[i].L=en[x];
Q[i].R=st[y];
}
}
K=(int)sqrt(2*n);
sort(Q,Q+q);
mos();
for(int i=0;i<q;i++){
if(ANS[i]==1) printf("Find\n");
else printf("NotFind\n");
}
printf("\n");
}
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKdHlwZWRlZiBsb25nIGxvbmcgbGw7CgojZGVmaW5lICBwcmVjKG4pICAgICAgICBmaXhlZDw8c2V0cHJlY2lzaW9uKG4pCiNkZWZpbmUgIG9wdGltaXplICAgICAgIGlvczo6c3luY193aXRoX3N0ZGlvKDApOyBjaW4udGllKDApOwojZGVmaW5lICBQSSAgICAgICAgICAgICBhY29zKC0xLjApCiNkZWZpbmUgIFJFU0VUKGEsIGIpICAgIG1lbXNldChhLCBiLCBzaXplb2YoYSkpCiNkZWZpbmUgIHBiICAgICAgICAgICAgIHB1c2hfYmFjawojZGVmaW5lICBzeih2KSAgICAgICAgICB2LnNpemUoKQojZGVmaW5lICBwaWkgICAgICAgICAgICBwYWlyPGludCxpbnQ+CiNkZWZpbmUgIGZmICAgICAgICAgICAgIGZpcnN0CiNkZWZpbmUgIHNzICAgICAgICAgICAgIHNlY29uZAojZGVmaW5lICB2diAgICAgICAgICAgICB2ZWN0b3I8aW50PgojZGVmaW5lICBhbGwodikgICAgICAgICB2LmJlZ2luKCksdi5lbmQoKQoKaW50IGNvbnN0IE1BWE49MTIwMDAxOwppbnQgY29uc3QgTUFYUT0yNTAwMDE7CmludCBjb25zdCBMTj0yMDsKaW50IElEWzIqTUFYTl0sc3RbTUFYTl0sZW5bTUFYTl0sbGV2ZWxbTUFYTl0sYVtNQVhOXTsKaW50IGRwW01BWE5dW0xOXSx2aXNbTUFYTl07CnZ2IGdbTUFYTl07CmludCBNYXBbTUFYTl07CmludCBBTlNbTUFYTl07CmludCBuLHEsSyxjdXI7CnN0cnVjdCBRdWVyeXsKICAgIGludCBpbmRleCwgTCwgUixsYyx2YWw7CiAgICBib29sIG9wZXJhdG9yIDwgKGNvbnN0IFF1ZXJ5ICZvdGhlcikgY29uc3QgewoJCWludCBibG9ja19vd24gPSBML0s7CgkJaW50IGJsb2NrX290aGVyID0gb3RoZXIuTC9LOwoJCWlmKGJsb2NrX293biA9PSBibG9ja19vdGhlcikKICAgICAgICAgICAgcmV0dXJuIFIgPCBvdGhlci5SOwoJCXJldHVybiBibG9ja19vd24gPCBibG9ja19vdGhlcjsKCX0KfVFbTUFYUV07Cgp2b2lkIGRmcyhpbnQgdSxpbnQgcCl7CiAgIHN0W3VdPSArK2N1cjsKICAgSURbY3VyXT11OwogICAvL1RbdV09cDsKICAgbGV2ZWxbdV09bGV2ZWxbcF0rMTsKICAgZHBbdV1bMF0gPSBwOwogICAgZm9yKGludCBpPTE7IGk8TE47ICsraSkKICAgICAgICBkcFt1XVtpXSA9IGRwW2RwW3VdW2ktMV1dW2ktMV07CiAgIGZvcihpbnQgaT0wO2k8Z1t1XS5zaXplKCk7aSsrKXsKICAgICBpbnQgeD1nW3VdW2ldOwogICAgIGlmKHg9PXApIGNvbnRpbnVlOwogICAgIGRmcyh4LHUpOwogICB9CiAgIGVuW3VdPSArK2N1cjsKICAgSURbY3VyXT11Owp9CmludCBsY2EoaW50IHUsIGludCB2KSB7CiAgICBpZihsZXZlbFt1XSA8IGxldmVsW3ZdKQogICAgICAgIHN3YXAodSwgdik7CiAgICBpbnQgZGlmZiA9IGxldmVsW3VdIC0gbGV2ZWxbdl07CiAgICBmb3IoaW50IGk9MDsgaTxMTjsgKytpKSB7CiAgICAgICAgaWYoKDE8PGkpICYgZGlmZikKICAgICAgICAgICAgdSA9IGRwW3VdW2ldOwogICAgfQogICAgaWYodSA9PSB2KQogICAgICAgIHJldHVybiB1OwogICAgZm9yKGludCBpPUxOLTE7IGk+PTA7IC0taSkgewogICAgICAgIGlmKGRwW3VdW2ldICE9IGRwW3ZdW2ldKSB7CiAgICAgICAgICAgIHUgPSBkcFt1XVtpXTsKICAgICAgICAgICAgdiA9IGRwW3ZdW2ldOwogICAgICAgIH0KICAgIH0KICAgIHJldHVybiBkcFt1XVswXTsKfQp2b2lkIGFkZChpbnQgeCl7CiAgICBpZih2aXNbeF09PTApewogICAgICAgIE1hcFthW3hdXT0xOwogICAgICAgIHZpc1t4XT0xOwogICAgfQogICAgZWxzZXsKICAgICAgICBNYXBbYVt4XV09MDsKICAgICAgICB2aXNbeF09MDsKICAgIH0KfQp2b2lkIG1vcygpewogICBmb3IoaW50IGk9MDtpPHE7aSsrKXsKICAgICAgaW50IGNsPTEsY3I9MDsKICAgICAgd2hpbGUoY3I8PVFbaV0uUikgYWRkKElEWysrY3JdKTsKICAgICAgd2hpbGUoY2w8UVtpXS5MKSBhZGQoSURbY2wrK10pOwogICAgICB3aGlsZShjcj49UVtpXS5SKSBhZGQoSURbY3ItLV0pOwogICAgICB3aGlsZShjbD5RW2ldLkwpIGFkZChJRFstLWNsXSk7CiAgICAgIGludCB1PSBJRFtjbF0sdj1JRFtjcl07CiAgICAgIGlmKFFbaV0ubGMhPXUgJiYgUVtpXS5sYyE9dikgYWRkKFFbaV0ubGMpOwogICAgICAvL2NvdXQ8PE1hcFtRW2ldLnZhbF08PGVuZGw7CiAgICAgIGlmKE1hcFtRW2ldLnZhbF09PTEpewogICAgICAgIC8vY291dDw8InllcyI8PGVuZGw7CiAgICAgICAgIEFOU1tRW2ldLmluZGV4XT0xOwogICAgICB9CiAgICAgIGlmKFFbaV0ubGMhPXUgJiYgUVtpXS5sYyE9dikgYWRkKFFbaV0ubGMpOwogICB9Cn0KaW50IG1haW4oKQp7CiAgICB3aGlsZSgoc2NhbmYoIiVkJWQiLCZuLCZxKSkhPUVPRil7CiAgICAgICAgZm9yKGludCBpPTE7aTw9bjtpKyspewogICAgICAgICAgICBzY2FuZigiJWQiLCZhW2ldKTsKICAgICAgICB9CiAgICAgICAgZm9yKGludCBpPTE7aTw9bjtpKyspewogICAgICAgICAgICBnW2ldLmNsZWFyKCk7CiAgICAgICAgICAgIHZpc1tpXT0wOwogICAgICAgICAgICBNYXBbaV09MDsKICAgICAgICAgICAgbGV2ZWxbaV09MDsKICAgICAgICB9CiAgICAgICAgZm9yKGludCBpPTA7aTw9bjtpKyspewogICAgICAgICAgICBmb3IoaW50IGo9MDtqPD1MTjtqKyspIGRwW2ldW2pdPTA7CiAgICAgICAgfQogICAgICAgIGZvcihpbnQgaT0xO2k8PW4tMTtpKyspewogICAgICAgICAgICBpbnQgeCx5OwogICAgICAgICAgICBzY2FuZigiJWQlZCIsJngsJnkpOwogICAgICAgICAgICBnW3hdLnBiKHkpOwogICAgICAgICAgICBnW3ldLnBiKHgpOwogICAgICAgIH0KICAgICAgICBjdXI9MDsKICAgICAgICBkZnMoMSwtMSk7CiAgICAgICAgLy9mb3IoaW50IGk9MTtpPD0xMDtpKyspIGNvdXQ8PElEW2ldPDwiICI7CiAgICAgICAgZm9yKGludCBpPTA7aTxxO2krKyl7CiAgICAgICAgICAgIGludCB4LHksdjE7CiAgICAgICAgICAgIHNjYW5mKCIlZCVkJWQiLCZ4LCZ5LCZ2MSk7CiAgICAgICAgICAgIFFbaV0uaW5kZXg9aTsKICAgICAgICAgICAgUVtpXS52YWw9djE7CiAgICAgICAgICAgIFFbaV0ubGM9bGNhKHgseSk7CiAgICAgICAgICAgIC8vY291dDw8UVtpXS5sYzw8ZW5kbDsKICAgICAgICAgICAgaWYoc3RbeF0+c3RbeV0pIHN3YXAoeCx5KTsKICAgICAgICAgICAgaWYoUVtpXS5sYz09eCl7CiAgICAgICAgICAgICAgICBRW2ldLkw9c3RbeF07CiAgICAgICAgICAgICAgICBRW2ldLlI9c3RbeV07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZXsKICAgICAgICAgICAgICAgIFFbaV0uTD1lblt4XTsKICAgICAgICAgICAgICAgIFFbaV0uUj1zdFt5XTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBLPShpbnQpc3FydCgyKm4pOwogICAgICAgIHNvcnQoUSxRK3EpOwogICAgICAgIG1vcygpOwogICAgICAgIGZvcihpbnQgaT0wO2k8cTtpKyspewogICAgICAgICAgICBpZihBTlNbaV09PTEpIHByaW50ZigiRmluZFxuIik7CiAgICAgICAgICAgIGVsc2UgcHJpbnRmKCJOb3RGaW5kXG4iKTsKICAgICAgICB9CiAgICAgICAgcHJpbnRmKCJcbiIpOwogICAgfQoKfQo=