#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
****************************************************************/