program family;
var root:array[0..5000]of longint;
i,j,k,m,n,p,x,y:longint;
procedure find_root(x:longint);
begin
if root[x]=x then exit;
find_root(root[x]);
root[x]:=root[root[x]];
end;
begin
read(n,m,p);
for i:= 1 to n do
root[i]:=i;
for i:= 1 to m do
begin
read(x,y);
find_root(x);
find_root(y);
if root[x]<>root[y] then
root[y]:=x;
end;
for i:= 1 to p do
begin
read(x,y);
find_root(x);
find_root(y);
if root[x]=root[y] then
writeln(’Yes’)
else
writeln(’No’);
end;
end.
function findset(x:longint);longint;
begin
if father[x]=x then
findset:=x
else
begin
father[x]:=findset(father[x]);
findset:=father[x];
end;
end;
var
n,p,m,i,x,y:longint;
f:array[1..5000]of longint;
function gf(t:longint):longint;
begin
if f[t]=t then exit(t);
f[t]:=gf(f[t]);
exit(f[t]);
end;
procedure mm(j,k:longint);
begin
j:=gf(j);
k:=gf(k);
f[j]:=k;
end;
procedure pan(j,k:longint);
begin
j:=gf(j);
k:=gf(k);
if j=k then writeln('Yes')
else writeln('No');
end;
begin
readln(n,m,p);
for i:=1 to n do
f[i]:=i;
for i:=1 to m do
begin
read(x,y);
mm(x,y)
end;
for i:=1 to p do
begin
read(x,y);
pan(x,y);
end;
readln;
readln;
end.