#include <bits/stdc++.h>
#define rep(i,l,r) for(int i=l;i<=r;++i)
using namespace std;
const int N=1e5+24;
int n,m,qq;
vector<int> linker[N];
int disj[N],diso[N];
struct Node{
int u,dis;
};
list<Node> q;
void bfs()
{
rep(i,1,n)
disj[n]=2147483647,
diso[n]=2147483647;
diso[1]=0;
q.push_back((Node){1,0});
while(!q.empty())
{
int u=q.front().u,dis=q.front().dis;
q.pop_front();
for(auto v:linker[u])
{
if(dis&1)
if(dis+1<diso[v])
{
diso[v]=dis+1;
q.push_back((Node){v,diso[v]});
}
else
if(dis+1<disj[v])
{
disj[v]=dis+1;
q.push_back((Node){v,disj[v]});
}
}
}
}
signed main()
{
cin>>n>>m>>qq;
rep(i,1,m){
int u,v;
cin>>u>>v;
linker[u].push_back(v);
linker[v].push_back(u);
}
bfs();
while(qq--){
int a,l;
cin>>a>>l;
if(empty(linker[1]))
cout<<"No"<<endl;
if(l&1)
if(disj[a]>l)
cout<<"No"<<endl;
else
cout<<"Yes"<<endl;
else
if(diso[a]>l)
cout<<"No"<<endl;
else
cout<<"Yes"<<endl;
}
}
0pts P5663