#include <bits/stdc++.h>
using namespace std;
const int yhy = 100005;
int n, m, t;
vector<int>a[yhy];
void in() {
cin >> n >> m >> t;
while (m--) {
int u, v;
a[u].push_back(v);
a[v].push_back(u);
}
}
int dis_j[yhy], dis_o[yhy];
queue<pair<int, int> >q;
void bfs() {
for (int i = 1; i <= n; i++)
dis_j[i] = INT_MAX / 2;
for (int i = 1; i <= n; i++)
dis_o[i] = INT_MAX / 2;
for (int i = 0; i < a[1].size(); i++) {
dis_j[a[1][i]] = 1;
q.push(make_pair(a[1][i], 1));
}
while (!q.empty()) {
q.pop();
int x = q.front().first;
int y = q.front().second;
for (int i = 0; i < a[x].size(); i++) {
if (y % 2) {
if (y + 1 < dis_o[a[x][i]]) {
dis_o[a[x][i]] = y + 1;
q.push(make_pair(a[x][i], y + 1));
}
} else if (y + 1 < dis_j[a[x][i]]) {
dis_j[a[x][i]] = y + 1;
q.push(make_pair(a[x][i], y + 1));
}
}
}
}
void out() {
while (t--) {
int x, y;
cin >> x >> y;
puts(y % 2 ? (dis_j[x] > y ? "No" : "Yes" ) : (dis_o[x] > y ? "No" : "Yes"));
}
}
int main() {
in();
bfs();
out();
return 0;
}