#include #include #include #include void inspect(const std::vector& a) { return; for (size_t i = 0; i < a.size(); ++i) fprintf(stderr, "%d%c", a[i], i+1 a(N+1); std::iota(a.begin(), a.end(), 0); for (size_t i = 1; i < X; ++i) { size_t A, B; scanf("%zu %zu", &A, &B); std::swap(a[A], a[B]); inspect(a); } scanf(" ? ?"); std::vector A, B; for (size_t i = X; i < K; ++i) { size_t ai, bi; scanf("%zu %zu", &ai, &bi); A.push_back(ai); B.push_back(bi); } std::reverse(A.begin(), A.end()); std::reverse(B.begin(), B.end()); std::vector C(N+1); for (size_t i = 1; i <= N; ++i) scanf("%d", &C[i]); for (size_t i = 0; i < A.size(); ++i) { std::swap(C[A[i]], C[B[i]]); inspect(C); } char sep = ' '; for (size_t i = 1; i <= N; ++i) if (a[i] != C[i]) { printf("%d%c", i, sep); sep = '\n'; } }