import sys def calculate_average_distance(W, E, western_connections, eastern_connections, options): # Create adjacency lists for western and eastern stations western_adj_list = [[] for _ in range(W)] eastern_adj_list = [[] for _ in range(E)] for i in range(W-1): western_adj_list[i].append(western_connections[i]) western_adj_list[western_connections[i]-1].append(i+1) for i in range(E-1): eastern_adj_list[i].append(eastern_connections[i]) eastern_adj_list[eastern_connections[i]-1].append(i+1) # Function to perform DFS and calculate distance from source to all other stations def dfs(u, adj_list, distances): distances[u] = 0 stack = [u] while stack: v = stack.pop() for neighbor in adj_list[v]: if distances[neighbor] == -1: distances[neighbor] = distances[v] + 1 stack.append(neighbor) # Calculate distances for western and eastern stations western_distances = [-1] * W eastern_distances = [-1] * E dfs(0, western_adj_list, western_distances) dfs(0, eastern_adj_list, eastern_distances) # Calculate average distance for each option average_distances = [] for option in options: a, b = option a -= 1 b -= 1 # Calculate distance from western station a to eastern station b distance = western_distances[a] + eastern_distances[b] + 2 # Append to average_distances list average_distances.append(distance) return average_distances # Read input T = int(input()) for t in range(1, T+1): W, E, C = map(int, input().split()) western_connections = list(map(int, input().split())) eastern_connections = list(map(int, input().split())) options = [tuple(map(int, input().split())) for _ in range(C)] # Call the function to calculate average distances average_distances = calculate_average_distance(W, E, western_connections, eastern_connections, options) # Print the output print("Case #{}: {}".format(t, " ".join(map(str, average_distances))))