#include <bits/stdc++.h>
using namespace std;
const long long MOD = 1e9 + 7;
int n, m, q, curcol, col[100010], depth[100010], val[100010], sum[100010],
    par[20][100010], parr[100010];
bool vis[100010];
vector<int> g[100010];
int FIND(int pos) {
  if (parr[pos] != pos) parr[pos] = FIND(parr[pos]);
  return parr[pos];
}
void dfs(int pos, int no, int d) {
  vis[pos] = true;
  col[pos] = curcol;
  par[0][pos] = no;
  depth[pos] = d;
  for (int i = 0; i < g[pos].size(); i++) {
    if (g[pos][i] == no) continue;
    if (vis[g[pos][i]]) {
      if (depth[pos] > depth[g[pos][i]] + 1) {
        if ((depth[pos] - depth[g[pos][i]]) % 2 == 0) val[pos] = 1;
        for (int j = FIND(pos); depth[j] > depth[g[pos][i]] + 1; j = FIND(j))
          parr[j] = par[0][j];
      }
      continue;
    }
    dfs(g[pos][i], pos, d + 1);
    if (FIND(pos) == FIND(g[pos][i])) val[pos] |= val[g[pos][i]];
  }
}
void dfs2(int pos) {
  sum[pos] += val[pos];
  for (int i = 0; i < g[pos].size(); i++) {
    if (depth[g[pos][i]] != depth[pos] + 1) continue;
    if (FIND(pos) == FIND(g[pos][i])) val[g[pos][i]] |= val[pos];
    sum[g[pos][i]] = sum[pos];
    dfs2(g[pos][i]);
  }
}
int lca(int pos, int pos2) {
  if (depth[pos] < depth[pos2]) swap(pos, pos2);
  for (int i = 18; i >= 0; i--)
    if (depth[pos] - (int)pow(2, i) >= depth[pos2]) pos = par[i][pos];
  for (int i = 18; i >= 0; i--) {
    if (par[i][pos] != par[i][pos2]) {
      pos = par[i][pos];
      pos2 = par[i][pos2];
    }
  }
  if (pos == pos2) return pos;
  return par[0][pos];
}
int main() {
  cin >> n >> m;
  int x, y;
  for (int i = 0; i < m; i++) {
    scanf("%d%d", &x, &y);
    g[x].push_back(y);
    g[y].push_back(x);
  }
  for (int i = 1; i <= n; i++) parr[i] = i;
  for (int i = 1; i <= n; i++) {
    if (vis[i]) continue;
    curcol = i;
    dfs(i, 0, 0);
    dfs2(i);
  }
  for (int i = 0; i < 18; i++) {
    for (int j = 1; j <= n; j++) {
      if (par[i][j] == 0) continue;
      par[i + 1][j] = par[i][par[i][j]];
    }
  }
  cin >> q;
  for (int qn = 0; qn < q; qn++) {
    scanf("%d%d", &x, &y);
    if (col[x] != col[y]) {
      puts("No");
      continue;
    }
    int z = lca(x, y);
    if ((depth[x] - depth[z] + depth[y] - depth[z]) % 2 == 1 ||
        sum[x] + sum[y] - sum[z] * 2 > 0)
      puts("Yes");
    else
      puts("No");
  }
  return 0;
}
