def read_data(): N, K, X = map(int, input().split()) ABs = [] CDs = [] for i in range(1, K + 1): if i < X: ABs.append(list(map(int, input().split()))) elif i > X: CDs.append(list(map(int, input().split()))) else: input() Cs = list(map(int, input().split())) return N, K, X, ABs, CDs, Cs def solve(N, K, X, ABs, CDs, Cs): As = list(range(1, N + 1)) for A, B in ABs: A -= 1 B -= 1 As[A], As[B] = As[B], As[A] CDs.reverse() for A, B in CDs: A -= 1 B -= 1 Cs[A], Cs[B] = Cs[B], Cs[A] pos = [] p = 0 for a, c in zip(As, Cs): p += 1 if a != c: pos.append(p) return pos params = read_data() print(*solve(*params))