import scala.io.StdIn.{readLine, readInt};
import scala.annotation.tailrec;
import scala.collection.immutable.Queue;

object Main {
    def main(args: Array[String]): Unit = {
        val input = readLine.split(" ").map(_.toInt);
        val size = input(0);
        val relationNum = input(1);
        val g = new AdjacentListGraph(size);
        (0 until relationNum).foreach { i =>
            readLine.split(" ").map(_.toInt) match {
                case Array(src, dst) => g.add(src, dst);
                case _ => ();
            }
        }
        val f = (a: Int, b: Int) => a == b;
        (0 until readInt).foreach { i =>
            readLine.split(" ").map(_.toInt) match {
                case Array(src, dst) => if (g.bfs(src, dst)) println("yes") else println("no");
                case _ => ()
            }
        }
        
    }
}

class AdjacentListGraph(val size: Int) {
    val al = new Array[List[Int]](size);

    def dump = al.zipWithIndex.filterNot(a => a._1 == null).foreach { e => println("%d -> %s".format(e._2, e._1.mkString(" ")))}
    def dump2 = al.foreach { a => println(a)}

    def add(src: Int, dst: Int): Unit = {
        al(src) = dst :: (if (al(src) == null) Nil else al(src));
        al(dst) = src :: (if (al(dst) == null) Nil else al(dst));
    }
    def bfs(src: Int, dst: Int): Boolean = {
        val visited = new Array[Int](size);
        @tailrec
        def _bfs(que: Queue[Int]): Boolean = que.dequeueOption match { // 幅優先での探索
            case None => false;
            case Some((curr, que1)) if (curr == dst) => true;
            case Some((curr, que1)) => {
                val nextNodes = if (al(curr) == null) Nil else al(curr);
                val nextQue = nextNodes.filterNot(visited(_) == 1).
                    foldLeft(que1) { (q, nextNode) =>
                        visited(nextNode) = 1;
                        q.enqueue(nextNode);
                        
                    }
                _bfs(nextQue);
            }
        }
        if (src < size && dst < size) {
            visited(src) = 1;
            _bfs(Queue[Int](src));
        } else {
            false;
        }
    }
}
