#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
int n,m,qer,h[100005],e[200005],ne[200005],idx,dist[100005][2];
pair<int,int>q[200010];
void add(int a,int b)
{
e[idx]=b,ne[idx]=h[a],h[a]=idx++;
}
void bfs()
{
memset(dist, 0x3f, sizeof dist);
int hh=0,tt=0,ver,type,i,j;
q[0]={1, 0},dist[1][0]=0;
while (hh<=tt)
{
pair<int,int>t=q[hh++];
ver=t.first,type=t.second;
for(i=h[ver];~i;i=ne[i]){
j=e[i];
if(dist[j][type^1]>dist[ver][type]+1)dist[j][type^1]=dist[ver][type]+1,q[++tt]=make_pair(j,type^1);
}
}
}
int main()
{
scanf("%d%d%d",&n,&m,&qer);
memset(h,-1,sizeof h);
int i,a,b;
for(i=0;i<m;i++){
scanf("%d%d",&a,&b);
add(a,b),add(b,a);
}
bfs();
while(qer--){
scanf("%d%d",&a,&b);
if(a==1&&h[1]==-1)printf("No\n");
else if(dist[a][b&1]<=b)printf("Yes\n");
else printf("No\n");
}
return 0;
}