def read_list(): return list(map(int, input().strip().split())) def read_tuple(): return tuple(map(int, input().strip().split())) def avg_dist(w, e, c, west, east, options): n = w + e sum_len = (n - 2) * (n - 1) // 2 sum_dist = [0] * n for i in range(w - 1): u, v = west[i] sum_dist[u - 1] += 1 sum_dist[v - 1] += 1 for i in range(e - 1): u, v = east[i] sum_dist[w + u - 1] += 1 sum_dist[w + v - 1] += 1 ans = [] for option in options: u, v = option u, v = u - 1, w + v - 1 ans.append((sum_len - sum_dist[u] - sum_dist[v] + (w - 1 + e - 1)) / (n - 2)) return ans t = int(input().strip()) for test_case in range(1, t + 1): w, e, c = read_tuple() west = [read_tuple() for _ in range(w - 1)] east = [read_tuple() for _ in range(e - 1)] options = [read_tuple() for _ in range(c)] ans = avg_dist(w, e, c, west, east, options) print("Case #{}: {}".format(test_case, " ".join(map(str, ans))))