var n,m,i,x,y:longint; f:array[0..100000] of longint; function find(x:longint):longint; begin if f[x]=x then exit(x); f[x]:=find(f[x]); exit(f[x]); end; procedure combine(x,y:longint); var xx,yy:longint; begin xx:=find(x); yy:=find(y); if xx<>yy then f[xx]:=yy; end; begin readln(n,m); for i:=1 to n do f[i]:=i; for i:=1 to m do begin readln(x,y); combine(x,y); end; readln(m); for i:=1 to m do begin readln(x,y); if find(x)=find(y) then writeln('Yes') else writeln('No'); end; end. /************************************************************** Problem: 2237 User: admin Language: Pascal Result: Wrong Answer ****************************************************************/