#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]=0x3f3f3f3f,
diso[n]=0x3f3f3f3f;
for(auto i:linker[1])
{
disj[i]=1;
q.push_back((Node){i,1});
}
while(!q.empty())
{
int u=q.front().u,dis=q.front().dis;
q.pop_front();
for(auto v:linker[u])
{
if((dis&1)&&(dis+1<diso[v]))
{
diso[v]=dis+1;
q.push_back((Node){v,dis+1});
}
else if(dis+1<disj[v])
{
disj[v]=dis+1;
q.push_back((Node){v,dis+1});
}
}
}
}
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(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;
}
}
}
https://www.luogu.com.cn/problem/P5663