#include <iostream>
#include <cstdio>
#include <string.h>
using namespace std;
const int MAXN = 1000005;
int fa[MAXN],mo[MAXN];
int sex[MAXN];
bool vis[MAXN];
int flag;
void dfs(int node,int cur,int f){
if(cur > 5){
return;
}
if(f && !vis[node]){
vis[node] = 1;
}
if(!f && vis[node]){
flag = 1;
return;
}
if(fa[node] != -1 && !flag){
dfs(fa[node],cur + 1,f);
}
if(mo[node] != -1 && !flag){
dfs(mo[node],cur + 1,f);
}
}
int main(void){
int n;
cin>>n;
memset(fa,-1,sizeof(fa));
memset(mo,-1,sizeof(mo));
memset(sex,-1,sizeof(sex));
while(n--){
int id,f_id,m_id;
char c;
cin>>id;
getchar();
cin>>c;
cin>>f_id>>m_id;
sex[id] = (c == 'M');
fa[id] = f_id;
mo[id] = m_id;
if(f_id != -1){
sex[f_id] = 1;
}
if(m_id != -1){
sex[m_id] = 0;
}
}
int q;
cin>>q;
while(q--){
int a,b;
cin>>a>>b;
flag = 0;
if(sex[a] == sex[b]){
printf("Never Mind\n");
continue;
}
memset(vis,0,sizeof(vis));
dfs(a,1,1);
dfs(b,1,0);
if(flag){
printf("No\n");
}
else{
printf("Yes\n");
}
}
return 0;
}