#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define maxn 20010
int f[20010];
int n, m;
int find(int v){
if(f[v] == v)return v;
int F = find(f[v]);
f[v] = F;
return F;
}
int main()
{
while(scanf("%d%d",&n,&m) != EOF){
for(int i = 1;i <= n; i++)f[i] = i;
for(int i = 0;i < m; i++){
int a, b;
scanf("%d%d",&a,&b);
int fa = find(a);
int fb = find(b);
f[fb] = fa;
}
int Q;
scanf("%d",&Q);
while(Q--){
int a, b;
scanf("%d%d",&a,&b);
int fa = find(a);
int fb = find(b);
if(fa==fb){
printf("Yes\n");
}
else{
printf("No\n");
}
}
}
return 0;
}
/**************************************************************
Problem: 2237
User: admin
Language: C
Result: Accepted
Time:57 ms
Memory:1224 kb
****************************************************************/