N, K, X = gets.split.map(&:to_i) Q = K.times.map { a, b = gets.chomp.split if a == '?' [-1, -1] else [a.to_i - 1, b.to_i - 1] end } A = [*1..N] C = gets.split.map(&:to_i) Q.each do |a, b| break if a == -1 A[a], A[b] = A[b], A[a] end Q.reverse_each do |a, b| break if a == -1 C[a], C[b] = C[b], C[a] end ans = [] N.times do |i| next if A[i] == C[i] ans << i + 1 end puts ans.join(' ')