#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
using namespace std;
#include <algorithm>
#include <string>
#include <vector>
#include <list>
#include <set>
#include <map>
#include <queue>
#include <stack>
#include <unordered_set>
#include <unordered_map>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <cmath>
map<string, string >name;
string find(string s) {
if (name[s] == s)
return s;
return name[s] = find(name[s]);
}
void u(string s, string ss) {
if (find(s) != find(ss))
name[s] = name[ss];
}
int main() {
int n, m, k;
cin >> n >> m;
for (int i = 0; i < n; i++) {
string s; cin >> s;
name[s] = s;
}
for (int i = 0; i < m; i++) {
string s; string ss;
cin >> s >> ss;
u(s, ss);
}
cin >> k;
for (int i = 0; i < k; i++) {
string s; string ss;
cin >> s >> ss;
string x1 = find(s), x2 = find(ss);
if (x1 != x2) cout<<"No."<<endl;
else cout<<"Yes."<<endl;
}
return 0;
}