#include<bits/stdc++.h>
using namespace std;
int n,q,u,v,a,b,c,d,fa[100001][21],nxt[100005],head[100005],to[100005],tot,dep[100005];
void add(int u,int v)
{
nxt[++tot]=head[u];
head[u]=tot;
to[tot]=v;
}
void build(int rt,int deep)
{
dep[rt]=deep;
for(int i=head[rt];i;i=nxt[i])
{
if(to[i]!=fa[rt][0])
{
fa[to[i]][0]=rt;
build(to[i],deep+1);
}
}
}
int getf(int now)
{
for(int i=1;i<=20;i++)
if(dep[now]-(1<<i)>=1)
fa[now][i]=fa[fa[now][i-1]][i-1];
for(int i=head[now];i;i=nxt[i])
if(to[i]!=fa[now][0])
getf(to[i]);
}
int lca(int u,int v)
{
if(dep[v]>dep[u])swap(u,v);
for(int i=20;i>=0;i--)
if(dep[u]-(1<<i)>=dep[v])
u=fa[u][i];
if(u==v)return u;
for(int i=20;i>=0;i--)
if(fa[u][i]!=fa[v][i])
u=fa[u][i],v=fa[v][i];
return fa[u][0];
}
int getl(int u,int v,int _lca)
{
return dep[u]-dep[_lca]+dep[v]-dep[_lca];
}
bool deal()
{
int lca1=lca(a,c),lca2=lca(b,d),lca3=lca(a,b),lca4=lca(c,d);
if(getl(a,c,lca1)+getl(b,d,lca2)<=getl(a,b,lca3)+getl(c,d,lca4))
return 1;
else
return 0;
}
void out(bool bb)
{
if(bb) cout<<'Y'<<endl;
else cout<<'N'<<endl;
}
int main()
{
cin>>n>>q;
for(int i=1;i<=n;i++)
fa[i][0]=i;
for(int i=1;i<=n-1;i++)
{
cin>>u>>v;
add(u,v);
add(v,u);
}
build(1,1);
fa[1][0]=0;
getf(1);
for(int i=1;i<=n;i++)
{
cin>>a>>b>>c>>d;
out(deal());
}
return 0;
}