using namespace std;
int he[1000005],ne[1000005],ver[1000005],tot;
int vis[2][100005],num[4005][4005];
struct node{
int x,sum;
bool operator < (const node &p) const{
return sum>p.sum;
}
}a[100005];
void add(int x,int y){
ver[++tot]=y;
ne[tot]=he[x];
he[x]=tot;
}
priority_queue<node> p;
void dijkstra(){
memset(num,0x3f,sizeof num);
num[0][1]=0;
p.push({1,0});
while(!p.empty()){
node d=p.top();
p.pop();
if(vis[d.sum%2][d.x])continue;
vis[d.sum%2][d.x]=1;
num[d.sum%2][d.x]=d.sum;
for(int i=he[d.x];i;i=ne[i]){
int new_point=ver[i];
if(vis[(d.sum+1)%2][new_point]) continue;
else p.push({new_point,d.sum+1});
}
}
}
int main(){
int n,m,q;
cin>>n>>m>>q;
for(int i=1;i<=m;i++){
int x,y;
cin>>x>>y;
add(x,y);
add(y,x);
}
dijkstra();
for(int j=1;j<=q;j++){
int op,l,f=1;
cin>>op>>l;
for(int i=0;i<2;i++){
if(num[i][op]==0x3f3f3f3f) continue;
if(num[i][op]<=l&&(l-num[i][op])%2==0){
cout<<"Yes\n";
f=0;
break;
}
}
if(f) cout<<"No"<<endl;
}
return 0;
}
求调 80 pts