import java.util.Scanner; public class Main{ static int n,m,t; static int []pre; static void init(int m) { pre=new int[m+1]; for(int i=0;i<=m;i++) { pre[i]=i; } } static int find(int x) { if(pre[x]==x) return x; return pre[x]=find(pre[x]); } static void merge(int x,int y) { int fx=find(x); int fy=find(y); if(fx==fy) return; pre[fx]=fy; } public static void main(String[]args) { Scanner sc=new Scanner(System.in); n=sc.nextInt(); m=sc.nextInt(); init(n); for(int i=0;i<m;i++) { int a1=sc.nextInt(); int a2=sc.nextInt(); merge(a1, a2); } t=sc.nextInt(); for(int i=0;i<t;i++) { int b1=sc.nextInt(); int b2=sc.nextInt(); if(find(b2)==find(b1))System.out.println("Yes"); else System.out.println("No"); } } } /************************************************************** Problem: 2237 User: admin Language: Java Result: Accepted Time:5078 ms Memory:91868 kb ****************************************************************/