#include<bits/stdc++.h>
using namespace std;
int n;
int m;
int p;
int fa[200010];
int read(){
int x=0,f=1;
char c=getchar();
while(c<'0'||c>'9'){
if(c=='-'){
f=-1;
}
c=getchar();
}
while(c>='0'&&c<='9'){
x=x*10+c-'0';
c=getchar();
}
return x*f;
}
void write(int x){
if(x<0){
x=-x;
putchar('-');
}
if(x>9){
write(x/10);
}
putchar(x%10+'0');
}
void init(){
int t=n/4;
for(int i=1;i<=t;i++){
fa[i]=i;fa[i+1]=i+1;fa[i+2]=i+2;fa[i+3]=i+3;
}
for(int i=n-t*4;i<=n;i++){
fa[i]=i;
}
}
int findx(int x){
if(fa[x]==x){
return x;
}
else{
return findx(fa[x]);
}
}
void merge(int x,int y){
fa[findx(x)]=findx(y);
}
int main(){
n=read();m=read();p=read();
int t1=m/4,t2=p/4;
init();
for(int i=1;i<=t1;i++){
int a;
int b;
int c;
int d;
int e;
int f;
int g;
int h;
a=read();b=read();c=read();d=read();e=read();f=read();g=read();h=read();
merge(a,b);merge(c,d);merge(e,f);merge(g,h);
}
for(int i=t1*4+1;i<=m;i++){
int a;
int b;
a=read();b=read();
merge(a,b);
}
for(int i=1;i<=t2;i++){
int a;
int b;
int c;
int d;
int e;
int f;
int g;
int h;
a=read();b=read();c=read();d=read();e=read();f=read();g=read();h=read();
if(findx(a)!=findx(b)){
putchar('N');
putchar('o');
putchar('\n');
}
else{
putchar('Y');
putchar('e');
putchar('s');
putchar('\n');
}
if(findx(c)!=findx(d)){
putchar('N');
putchar('o');
putchar('\n');
}
else{
putchar('Y');
putchar('e');
putchar('s');
putchar('\n');
}
if(findx(e)!=findx(f)){
putchar('N');
putchar('o');
putchar('\n');
}
else{
putchar('Y');
putchar('e');
putchar('s');
putchar('\n');
}
if(findx(g)!=findx(h)){
putchar('N');
putchar('o');
putchar('\n');
}
else{
putchar('Y');
putchar('e');
putchar('s');
putchar('\n');
}
}
for(int i=t2*4+1;i<=p;i++){
int a;
int b;
a=read();b=read();
if(findx(a)!=findx(b)){
putchar('N');
putchar('o');
putchar('\n');
}
else{
putchar('Y');
putchar('e');
putchar('s');
putchar('\n');
}
}
return 0;
}
#include<bits/stdc++.h>
using namespace std;
int n;
int m;
int p;
int fa[5010];
int read(){
int x=0,f=1;
char c=getchar();
while(c<'0'||c>'9'){
if(c=='-'){
f=-1;
}
c=getchar();
}
while(c>='0'&&c<='9'){
x=x*10+c-'0';
c=getchar();
}
return x*f;
}
void write(int x){
if(x<0){
x=-x;
putchar('-');
}
if(x>9){
write(x/10);
}
putchar(x%10+'0');
}
void init(){
int t=n/4;
for(int i=1;i<=t;i++){
fa[i]=i;fa[i+1]=i+1;fa[i+2]=i+2;fa[i+3]=i+3;
}
for(int i=n-t*4;i<=n;i++){
fa[i]=i;
}
}
int findx(int x){
if(fa[x]==x){
return x;
}
else{
return findx(fa[x]);
}
}
void merge(int x,int y){
fa[findx(x)]=findx(y);
}
int main(){
n=read();m=read();p=read();
init();
for(int i=1;i<=m;i++){
int a;
int b;
a=read();b=read();
merge(a,b);
}
for(int i=1;i<=p;i++){
int a;
int b;
a=read();b=read();
if(findx(a)!=findx(b)){
putchar('N');
putchar('o');
putchar('\n');
}
else{
putchar('Y');
putchar('e');
putchar('s');
putchar('\n');
}
}
return 0;
}