n, m = gets.split.map(&:to_i)
v = Array.new n
g = Array.new(n) { [] }
m.times do
  s, t = gets.split.map(&:to_i)
  g[s] << t
  g[t] << s
end
dfs = lambda do |u, o|
  break if v[u]
  v[u] = o
  g[u].each do |c|
    dfs[c, o]
  end
end
n.times do |u|
  dfs[u, u]
end
gets.to_i.times do
  s, t = gets.split.map(&:to_i)
  puts v[s] == v[t] ? 'yes' : 'no'
end