#include <bits/stdc++.h>
using namespace std;
const int N=1e5+10;
vector<int> v[N];//构图
char sex[N];//性别
int st[N];//标记五代以内的亲属
int flag;//标记有没有相同的亲属
void dfs(int x,int num)//num为第几代,u为查询到的点
{
if(num>=4) return;//如果查询到第五代就直接返回
for(int i=0;i<v[x].size();i++)
{
if(!st[v[x][i]])
{
st[v[x][i]]=1;
dfs(v[x][i],num+1);
}
else flag=1;
}
}
signed main()
{
cin.tie(0);
cout.tie(0);
int t;
cin>>t;
while(t--)
{
int fa,ma,wo;
char c;
cin>>wo>>c>>fa>>ma;
sex[wo]=c;
if(fa!=-1)
{
v[wo].push_back(fa);
sex[fa]='M';
}
if(ma!=-1)
{
v[wo].push_back(ma);
sex[ma]='F';
}
}
cin>>t;
while(t--)
{
int a,b;
cin>>a>>b;
if(sex[a]==sex[b])
{
cout<<"Never Mind"<<endl;
continue;
}
memset(st,0,sizeof st);
flag=0;
st[a]=1;
st[b]=1;
dfs(a,0);
dfs(b,0);
if(flag) cout<<"No"<<endl;
else cout<<"Yes"<<endl;
}
}
#include<bits/stdc++.h>
using namespace std;
const int maxn = 1e5 + 5;
map<string,string>fa;//相当于前驱数组,存放父亲的名
map<string,int>g;//存性别,0表示女,1表示男
int n,m;
bool check(string a, string b)//检查是否在五代之内,a,b表示最后需要判断的人名
{
map<string,int>num;//表示经过了几代人
for(int i=1; a != ""; i++)//找a的最大祖先,确定有几代人
{
num[a] = i;
a = fa[a];
}
for(int i=1; b != ""; i++)
{
if(num[b])//如果存在b的代数就证明a和b有共同祖先,
//因为我们只求了a的祖先有几代人,并没有求b的,a和b如果没有共同祖先不会进入判断
{
if(num[b] >= 5 && i >= 5)
return true;
else
return false;
}
b = fa[b];
}
return true;
}
int main()
{
cin>>n;
while(n--)
{
string x,y,z;cin>>x>>y;
char c=y[y.size()-1];
if(c=='m')g[x]=1;
if(c=='f')g[x]=2;
if(c=='n'){
g[x]=1;
fa[x]=y.substr(0,y.size()-4);
g[fa[x]]=1;
}
if(c=='r'){
g[x]=2;
fa[x]=y.substr(0,y.size()-7);
g[fa[x]]=1;
}
}
cin>>m;
while(m--)
{
string m1, x1, m2, x2;
cin>>m1>>x1>>m2>>x2;
if(!g[m1]||!g[m2])//看看是不是有人不在名单内
cout<<"NA"<<endl;
else if(g[m1] == g[m2])//同性
cout<<"Whatever"<<endl;
else if(check(m1,m2))//判断是否在五代之内
cout<<"Yes"<<endl;
else
cout<<"No"<<endl;
}
}