import sys input = sys.stdin.readline sys.setrecursionlimit(10 ** 7) INF = float("INF") MOD = 10 ** 9 + 7 MOD2 = 998244353 from heapq import heappop, heappush import math from collections import Counter, deque from itertools import accumulate, combinations, combinations_with_replacement, permutations from bisect import bisect_left, bisect_right import decimal n, m, q = map(int, input().split()) edge = [[] for _ in range(n)] for i in range(m): u, v = map(int, input().split()) u, v = u - 1, v - 1 edge[u].append(v) edge[v].append(u) ord = [-1] * n low = [-1] * n cnt = 0 def dfs(i, p): global cnt ord[i] = cnt cnt += 1 low[i] = ord[i] for to in edge[i]: if to == p: continue if ord[to] != -1: low[i] = min(low[i], ord[to]) continue dfs(to, i) low[i] = min(low[i], low[to]) dfs(0, -1) def is_bridge(i, j): if ord[i] < low[j] or ord[j] < low[i]: return True return False edge2 = [[] for _ in range(n)] for i in range(n): for j in edge[i]: if is_bridge(i, j): edge2[i].append(j) seen = [-1] * n for i in range(n): if seen[i] != -1: continue seen[i] = i que = deque() que.append(i) while que: x = que.popleft() for to in edge2[x]: if seen[to] != -1: continue seen[to] = seen[x] que.append(to) for i in range(q): x, y = map(int, input().split()) x, y = x - 1, y - 1 if seen[x] != seen[y]: print("No") else: print("Yes")