#include<iostream>
#include<algorithm>
using namespace std;
int mapp[100005][2]={0},f[2000005]={0};
bool ans[100005];
struct edge
{
int to,next;
}maap[200010];
void _add(int x,int y,int i)
{
maap[i*2].next=x,maap[i*2].to=y;
maap[i*2+1].next=y,maap[i*2+1].to=x;
//maap[i].next=x,maap[i].to=y;
return ;
}
int main()
{
ios::sync_with_stdio(false);
int i,j,k,n,m,q,x,y,sum=0;
cin>>n>>m>>q;
for(i=0;i<=m-1;i++)
cin>>x>>y,_add(x,y,i);
i=0,j=0,f[0]=1,x=0;
while(i<=j)
{
for(k=0;k<=(m-1)*2+1;k++)
if(f[i]==maap[k].next&&mapp[maap[k].to][(sum+1)%2]==0)
mapp[maap[k].to][(sum+1)%2]=sum+1,j++,f[j]=maap[k].to;//f[++j]=maap[k].to;
//mapp[f[i]][sum%2]=sum;//min(sum,mapp[f[i]][sum%2]==0?2100000000:mapp[f[i]][sum%2]);
if(x==i)
sum++,x=j;
i++;
}
cout<<i<<'H'<<j<<endl;
for(i=0;i<=q-1;i++)
{
cin>>x>>y;
if(mapp[x][y%2]!=0&&mapp[x][y%2]<=y)
ans[i]=true;
else
ans[i]=false;
}
for(i=0;i<=q-1;i++)
if(ans[i]==false)
cout<<"No"<<endl;
else
cout<<"Yes"<<endl;
return 0;
}