def getStrValues():
    return input().split()
def getIntValues():
    return map(int, getStrValues())


n, k, x = getIntValues()

ar1 = [i for i in range(0, n + 1)]
ar2 = [i for i in range(0, n + 1)]

for i in range(1, k + 1):
    if i < x:
        a, b = getIntValues()
        ar1[a], ar1[b] = ar1[b], ar1[a]
        ar2[a], ar2[b] = ar2[b], ar2[a]
    elif i > x:
        a, b = getIntValues()
        ar2[a], ar2[b] = ar2[b], ar2[a]
    else:
        getStrValues()

c = list(getIntValues())

df = []
for i in range(n):
    if c[i] != ar2[i + 1]:
        df.append(c[i])

ans = []
for d in df:
    for i in range(n + 1):
        if ar1[i] == d:
            ans.append(i)
            break

print(*sorted(ans))