#include<bits/stdc++.h>
#define N 100100
#define INF 12345678
using namespace std;
int n,m,q;
int cnt,next[N<<1],to[N<<1],head[N];
int dis1[N],dis2[N];
bool vis[N];
void add(int x,int y){
next[++cnt]=head[x];
to[cnt]=y;
head[x]=cnt;
}
void bfs(){
for(int i=1;i<=n;++i)dis1[i]=dis2[i]=INF;
dis1[1]=dis2[1]=0;
queue<int > q;
q.push(1);
while(!q.empty()){
int x=q.front();
q.pop();
for(int i=head[x];i;i=next[i]){
int tt=to[i];
if(dis1[tt]>dis2[x]+1&&dis2[x]%2==0){
dis1[tt]=dis2[x]+1;
q.push(tt);
}
if(dis2[tt]>dis1[x]+1&&dis1[x]%2==1){
dis2[tt]=dis1[x]+1;
q.push(tt);
}
}
}
}
int main(){
cin>>n>>m>>q;
for(int i=1;i<=m;++i){
int x,y;
cin>>x>>y;
add(x,y);
add(y,x);
}
bfs();
dis1[1]=dis2[1]=INF;
for(int i=head[1];i;i=next[i]){
int tt=to[i];
dis1[1]=min(dis2[tt]+1,dis1[1]);
dis2[1]=min(dis1[tt]+1,dis2[1]);
}
for(int i=1;i<=q;++i){
int x,l;
cin>>x>>l;
if((dis1[x]<=l&&(l-dis1[x])%2==0)||(dis2[x]<=l&&(l-dis2[x])%2==0))cout<<"Yes"<<endl;
else cout<<"No"<<endl;
}
return 0;
}