RT
#include <bits/stdc++.h>
using namespace std;
int n, m, q, u, v, dis[2][100001];
vector <int> e[100001];
bool vis[2][100001], f[100001];
void bfs(){
queue <int> q;
q.push(1);
memset(dis, 0x3f3f3f3f, sizeof dis);
vis[0][1] = true;
dis[0][1] = 0;
while (!q.empty()){
int nx = q.front();
q.pop();
for (int i : e[nx]){
if (vis[f[nx] ^ 1][i]){
continue;
}
f[i] = f[nx] ^ 1;
vis[f[i]][i] = true;
dis[f[i]][i] = dis[f[nx]][nx] + 1;
q.push(i);
}
}
return;
}
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
cin >> n >> m >> q;
for (int i = 1; i <= m; i++){
cin >> u >> v;
e[u].push_back(v);
e[v].push_back(u);
}
bfs();
for (int i = 1; i <= q; i++){
cin >> u >> v;
if (dis[v % 2][u] <= v){
cout << "Yes" << endl;
} else {
cout << "No" << endl;
}
}
return 0;
}