#include<iostream>
#include<string.h>
using namespace std;
int nxt[100000],head[100000],to[100000],cnt=0,fin[100001][3];
int queue[100000001][2];
void add(int u,int v){
nxt[++cnt]=head[u];
head[u]=cnt;
to[cnt]=v;
}
int main(){
memset(fin,-1,sizeof(fin));
int n,m,q;
cin>>n>>m>>q;
for(int i=1;i<=m;i++){
int a1,b1;
cin>>a1>>b1;
add(a1,b1);
add(b1,a1);
}
int q_head=0,q_tail=1;
queue[0][0]=1;
queue[0][1]=0;
fin[1][2]=0;
while(q_head<q_tail){
int now=queue[q_head][0];
int count=queue[q_head][1]+1;
for(int i=head[now];i;i=nxt[i]){
if(fin[to[i]][count%2]==-1){
fin[to[i]][count%2]=count;
queue[q_tail][0]=to[i];
queue[q_tail][1]=count;
//cout<<to[i]<<' '<<count<<endl;
q_tail++;
}
}
q_head++;
}
int a,L;
for(int i=1;i<=q;i++){
cin>>a>>L;
if(fin[a][L%2]<=L&&fin[a][L%2]!=-1)cout<<"Yes"<<endl;
else cout<<"No"<<endl;
}
return 0;
}