#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using std::cout; using std::cin; using std::string; using std::vector; using std::endl; int main() { int n, k, x; cin >> n >> k >> x; vector begin_arr(n); for (int i = 0; i < n; i++) { begin_arr[i] = i + 1; } vector end_a, end_b; bool is_begin = true; for (int i = 0; i < k; i++) { if (i == x - 1) { char a, b; cin >> a >> b; is_begin = false; continue; } int a, b; cin >> a >> b; if (is_begin) { std::swap(begin_arr[a-1], begin_arr[b-1]); } else { end_a.push_back(a-1); end_b.push_back(b-1); } } vector end_arr(n); for (int i = 0; i < n; i++) { cin >> end_arr[i]; } for (int i = end_a.size()-1; i >= 0; i--) { std::swap(end_arr[end_a[i]], end_arr[end_b[i]]); } int a, b; a = b = -1; for (int i = 0; i < n; i++) { if (begin_arr[i] != end_arr[i]) { if (a == -1) { a = i+1; } else { b = i+1; } } } cout << a << ' ' << b << endl; }