n, m, q = map(int, input().split()) rem_edges = set() for _ in range(m): u, v = map(int, input().split()) u -= 1; v -= 1 rem_edges.add((u, v)) edges = [] for _ in range(q): u, v = map(int, input().split()) u -= 1; v -= 1 rem_edges.discard((u, v)) edges.append((u, v)) groups = [[i] for i in range(n)] leader = [i for i in range(n)] ans = [-1] * n def merge(u, v): lu = leader[u] lv = leader[v] if lu == lv: return if len(groups[lu]) < len(groups[lv]): for w in groups[lu]: groups[lv].append(w) leader[w] = lv groups[lu].clear() else: for w in groups[lv]: groups[lu].append(w) leader[w] = lu groups[lv].clear() for u, v in rem_edges: merge(u, v) for i in range(q)[::-1]: u, v = edges[i] lu = leader[u] lv = leader[v] if lu == lv: continue if leader[0] == lv: for w in groups[lu]: ans[w] = i + 1 if leader[0] == lu: for w in groups[lv]: ans[w] = i + 1 merge(u, v) print(*ans[1:], sep = "\n")