#include <iostream>
#include <queue>
#include <vector>
using namespace std;
bool vis[10005];
vector<int>workernet[10005];
int n , m , q;
bool BFS(int a , int L);
int main() {
cin >> n >> m >> q;
for(int i = 0; i < m; i++) {
int u , v;
cin >> u >> v;
workernet[u].push_back(v);
workernet[v].push_back(u);
}
for(int i = 0; i < q; i++) {
int a , L;
cin >> a >> L;
bool xuanusedflag = BFS(a , L);
if(xuanusedflag) {
cout << "Yes" << endl;
continue;
} else {
cout << "No" << endl;
}
}
}
bool BFS(int a , int L) {
queue<int>neededworkers;
neededworkers.push(a);
while(!neededworkers.empty()) {
for(int i = 0; i < workernet[neededworkers.front()].size(); i++) {
if(vis[neededworkers.front()][i] == false && neededworkers.front() <= n && i <= n) {
neededworkers.push(workernet[neededworkers.front()][i]);
vis[neededworkers.front()][i] = true;
}
}
if(neededworkers.front() == 1 && L == 1) {
return true;
}
}
return false;
}