#include #include #include #include void solve() { int n, k, x; std::cin >> n >> k >> x; std::vector xs(n); std::iota(xs.begin(), xs.end(), 0); std::vector> ps; for (int i = 1; i <= k; ++i) { if (i == x) { char a, b; std::cin >> a >> b; continue; } int a, b; std::cin >> a >> b; --a, --b; if (i < x) { std::swap(xs[a], xs[b]); } else { ps.emplace_back(a, b); } } std::vector ys(n); for (auto& y : ys) { std::cin >> y; --y; } std::reverse(ps.begin(), ps.end()); for (auto p : ps) { std::swap(ys[p.first], ys[p.second]); } for (int i = 0; i < n; ++i) { if (xs[i] != ys[i]) std::cout << i + 1 << " "; } std::cout << std::endl; } int main() { std::cin.tie(nullptr); std::ios::sync_with_stdio(false); solve(); return 0; }